腳本怎麼檢測伺服器
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下去
然後在場景中運行腳本。一般把伺服器資源打開。一邊壓力測試一般查看伺服器資源和網路情況。
如果腳本回放成功。那應該腳本是正確的。然後看大量的用戶壓力時候伺服器資源利用率攔皮情況。是不是伺服器壓力過大導致芹陸頁面響應時間或者中間件死掉。然後在看看運行這段時間網路是否有嫌衡頃不穩定的情況。