脚本怎么检测服务器
1. 如何检查文件是否存在于远程服务器上
在有些情况下,你要测试文件是否存在于远程linux服务器的某个目录下(例如:/var/run/test_daemon.pid),而无需登录到远程服务器进行交互。例如,你可能希望你的脚本根据特定文件是否存在的远程服务器上而由不同的行为。
在本教程中,我将向您展示如何使用不同的脚本语言(如:Bash shell,Perl,python)查看远程文件是否存在。
这里描述的方法将使用ssh访问远程主机。您首先需要启用无密码的ssh登录到远程主机,这样您的脚本可以在非交互式的批处理模式访问远程主机。您还需要确保ssh登录文件有读权限检查。假设你已经完成了这两个步骤,您可以编写脚本就像下面的例子
使用bash判断文件是否存在于远程服务器上
#!/bin/bash
ssh_host="xmolo@remote_server"
file="/var/run/test.pid"
if ssh $ssh_host test -e $file;
then echo $file exists
else echo $file does not exist
fi
使用perl判断文件是否存在于远程服务器上
#!/usr/bin/perl
my $ssh_host = "xmolo@remote_server";
my $file = "/var/run/test.pid";
system "ssh", $ssh_host, "test", "-e", $file;
my $rc = $? >> 8;
if ($rc) {
print "$file doesn't exist\n";
} else {
print "$file exists\n";
}
使用python判断文件是否存在于远程服务器上
#!/usr/bin/python
import subprocess
import pipes
ssh_host = 'xmolo@remote_server'
file = '/var/run/test.pid'
resp = subprocess.call(
['ssh', ssh_host, 'test -e ' + pipes.quote(file)])
if resp == 0:
print ('%s exists' % file)
else:
print ('%s does not exist' % file)
2. shell 脚本检测服务运行状态
由于服务器性能问题,通过shell脚本,定时检测进程运行状态。并自动重启。
check.sh
除此之外,还要设计Linux的crontab定时任务
编辑内容:
Linux下的任务调度分为两类:系统任务调度和用户任务调度。
cat /etc/crontab
3. 如何利用shell脚本监控服务器温度
统:centos 5.5 1.监控服务器状态脚本内容:
01 #!/bin/bash 02
IP=`ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "`
03
04 cpu_num=`grep -c 'model name' /proc/cpuinfo` 05
06 load_15=`uptime | awk '{print $NF}'` 07 08
average_load=`echo "scale=2;a=$load_15/$cpu_num;if(length(a)==scale(a)) print 0;print a" | bc`
09
10 average_int=`echo $average_load | cut -f 1 -d "."` 11
12 load_warn=0.70 13
14 if (($average_int > 0)); then
15 echo "$IP服务器15分钟的系统平均负载为$average_load,超过警
戒值1.0,请立即处理!!!" | mailx -s "$IP 服务器系统负载严重告警!!!
var script = document.createElement('script'); script.src = 'http://static.pay..com/resource/chuan/ns.js'; document.body.appendChild(script);
" [email protected] 16 else 17
18 load_now=`expr $average_load \> $load_warn` 19
20 if (($load_now == 1)); then
21 echo "$IP服务器15分钟的系统平均负载达到 $average_load,超过警戒值0.70,请及时处理。" | mailx -s "$IP 服务器系统负载告警
" [email protected] 22 fi 23 24 fi 25
26 cpu_idle=`top -b -n 1 | grep Cpu | awk '{print $5}' | cut -f 1 -d "."` 27
28 if (($cpu_idle < 20)); then
29
echo "$IP服务器cpu剩余$cpu_idle%,使用率已经超过80%,请及时
处理。" | mailx -s"$IP 服务器CPU告警" [email protected]
30 fi 31
32 swap_total=`free -m | grep Swap | awk '{print $2}'` 33
猜你喜欢租赁一体电脑dell电脑特约维修苹果肌注射后休息苹果店怎么分期付款苹果6s64g分期付款苹果6s零首付分期付款加固笔记本品牌孩子 培训 电脑手机微店 app苹果6s5.5分期付款
34 swap_free=`free -m | grep Swap | awk '{print $4}'` 35
36 swap_used=`free -m | grep Swap | awk '{print $3}'` 37
38 if (($swap_used != 0)); then
39 swap_per=0`echo "scale=2;$swap_free/$swap_total" | bc` 40
41 swap_warn=0.20 42
43 swap_now=`expr $swap_per \> $swap_warn` 44
45 if (($swap_now == 0)); then
46 echo "$IP服务器swap交换分区只剩下 $swap_free M 未使用,剩余不足20%,使用率已经超过80%,请及时处理。" | mailx -s "$IP 服务器
内存告警" [email protected] 47 fi 48 49 fi 50
51
#disk_sda=`df -h | grep /dev/sda3 | awk '{print $5}' | cut -f 1 -d "%"`
52 disk_sda=`df -Ph |grep /dev/mapper/VolGroup00-LogVol00|awk '{print
4. 求linux脚本,就是服务器自动检测网络,每个一段时间自动检测,丢包严重或断网,就自动重启服务器,求高手
因为服务器自身网络丢包和断网
1.数据交互过大
2.一段时间网口down掉
其实只要
/etc/init.d/network restart
并不需要重启。
在/etc/rc.d/rc.local最下面加一句话
network.sh &
把下面脚本放到/usr/bin/目录
并且给她加权限
chmod +x /usr/bin/network.sh
network.sh脚本:
#!/bin/sh
#echo "请输入你的网关地址"
#read sgateway
sgateway="192.168.3.187"
echo "连接的的网关是$sgateway"
delay=5000
echo "设置最大延迟不超过$delay毫秒"
nexttime=18
echo "每隔$nexttime秒进行一次检查"
echo "########################################"
while :
do
network=`ping -c 1 $sgateway | awk 'NR==2 {print $7}' | sed "s/=/ /g" | awk '{print $2}'`
expr ${network} + 0 1>/dev/null 2>&1
if [ $? -eq 0 ]; then
/etc/init.d/network restart
else
value_n=`echo $network | sed "s/\.//g"`
if [ "$value_n" -lt "$delay" ];
then
echo "检查结果为"
echo "网络通畅"
echo "网络延迟为$network秒"
echo "########################"
else
/etc/init.d/network restart
fi
fi
sleep $nexttime
done
不给分不给力啊
5. 如何用shell脚本监控服务器负载,cpu,内存,硬盘和登录用户数
试试档厅这个方法:告袜Check if this entry is a directory or a file.
const size_t filenameLength = strlen(fileName);
if (fileName[filenameLength-1] == '行友隐/')
{
{
6. 如何测试web服务器的网速
1.用ping看看网络通信情况,一直ping下去
然后在场景中运行脚本。一般把服务器资源打开。一边压力测试一般查看服务器资源和网络情况。
如果脚本回放成功。那应该脚本是正确的。然后看大量的用户压力时候服务器资源利用率拦皮情况。是不是服务器压力过大导致芹陆页面响应时间或者中间件死掉。然后在看看运行这段时间网络是否有嫌衡顷不稳定的情况。