httpd腳本
⑴ 跪求一個Linux 簡單Shell腳本... 該腳本用於監測httpd服務的運行狀態,要求: 1.當服務失常時在/var/log/h
#!/bin/bash
#Finding out the IP which logserver cannot connected from the ip list(locates:/home/list) in logserver.
#Written on xxxx.
#Author:Levin.
trap 'echo;exit 0' 2 15
IP=`cat /home/admin/IP.logserver`
list=/home/list
for i in $IP
do
ip=`echo $i|awk -F'--->' '{print $2}'`
echo $i
ssh $ip "cd /home/admin/
cat > testconnect.sh < < 'EOF'
#!/bin/bash
trap 'echo;exit 0' 2 15
ip=\`awk '{print \$2}' /home/admin/list\`
for i in \$ip
do
echo -n \"\$i \"
/usr/bin/ssh \$i \"echo connection ok!\"
done &>/home/admin/conn.txt
grep -v \"connection ok!\" /home/admin/conn.txt| tee /home/admin/conn.xg
EOF
su - admin -c \"/bin/bash /home/admin/testconnect.sh &>/dev/null\"
su - admin -c \"[ -s /home/admin/conn.xg ]&& cat /home/admin/conn.xg\"
"
done &>/home/admin/email.conn
num=`cat /home/admin/email.conn|wc -l`
if [[ $num -gt 9 ]]
then mail -s "提醒:logserver /home/list 發現問題IP " [email protected] < /home/admin/email.conn
fi
exit 0
幾個有用的技巧:
1,ssh ip "" 遠程執行命令的用法,把要在遠程執行的命令用雙引號引上,不要用單引號或不使用引號。使用單引號無法調用本地的變數,而且在使用awk的時候也會有問題。「」中的都是要在遠程伺服器執行的命令,可以用;號隔開每條命令,但最好使用回車符分開,因為這樣看上去很清晰。
2,cat > testconnect.sh < < 'EOF'
。。。
EOF
Here Document用法,簡單說明一下,testconnect.sh為要創建的文件,中間的。。。為要寫入這個文件的內容,EOF的單引號或雙引號,為注釋掉內容的變數。這種用法非常實用,值得好好去鑽研鑽研。
3,su - admin -c 「」 切換到普通用戶執行命令,「」號中是要在普通用戶環境下執行的命令。腳本中的「」被轉義了,是因為這是在遠程執行的,為了不與ssh的「」相沖突而出現錯誤。
⑵ apache伺服器啟動腳本apachectl無法完成
apache啟動失敗
1.
埠佔用問題 這個問題比較常見,解決起來也很容易。通常是因為IE或安裝的其它程序佔用了80埠而導致Apache啟動失敗,在啟動Apache之前將埠號修改為其它未佔用的埠就可以了。 解決方法:我們的apache軟體配置是在httpd.conf文件中配置,該文件在apache安裝目錄下conf 在httpd.conf文件中我們修改埠: Listen 81 注意修改完畢後,一定要重新啟動apache。
2.
路徑及文件名問題 解決了埠問題,還是啟動失敗,這是為什麼呢?我們需要注意一個小細節,查看一下我們安裝APMServ的路徑,要確定安裝路徑的文件夾名稱中不能出現中文或空格。畢竟這是個人作品,有些地方考慮的不是很周到,導致一些Bug。
3.
配置文件問題。