1. 程式人生 > >Linux日常巡檢指令碼

Linux日常巡檢指令碼

關於linux環境的日常操作,我分享一點經驗。

對於linux系統的日常監控運維,無非是一些記憶體、cpu、檔案空間、程序、埠等等,一些列的運維,這些都可以通過簡單的linux命令進行解決。

通過撰寫shell指令碼,對環境進行運維,一下簡單介紹幾種:

1.檔案的操作

將檔案放到遠端機器 將遠端檔案達到本地 將遠端檔案刪除
ftpPutFiles(){
remoteHost=$1
ftpUser=$2
ftpPwd=$3
remoteDir=$4
localDir=$5
localFiles=$6

ftp -i -v -n $remoteHost <<END_FTP

user $ftpUser $ftpPwd
binary
lcd $localDir
cd $remoteDir
mput $localFiles
bye
END_FTP
(sleep 2; echo $ftpUser; 
sleep 2; echo $ftpPwd; 
sleep 2; echo "chmod a+rwx $remoteDir/$localFiles"; 
sleep 2; echo "exit") | telnet $remoteHost 2>&1 | grep -v "getwinsize"
}
ftpGetFiles(){
remoteHost=$1

ftpUser=$2
ftpPwd=$3
remoteDir=$4
remoteFiles=$5
localDir=$6

ftp -i -v -n $remoteHost <<END_FTP

user $ftpUser $ftpPwd
binary
lcd $localDir
cd $remoteDir
mget $remoteFiles
bye
END_FTP
}
ftpDelFiles(){
remoteHost=$1
ftpUser=$2
ftpPwd=$3
remoteDir=$4
remoteFiles=$5

ftp -i -v -n $remoteHost <<END_FTP
user $ftpUser $ftpPwd

binary
cd $remoteDir
mdel $remoteFiles
bye
END_FTP
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.檔案系統的檢查指令碼

checkFileSystem(){
   REMOTE_HOST=$1
   REMOTE_USER=$2
   REMOTE_PWD=$3

   FILE_SYSTEM_LOG=fileSystem.log

   (sleep 1; echo $REMOTE_USER;
    sleep 1; echo $REMOTE_PWD;
    sleep 1; echo "df -h|grep %|awk '{print \$(NF-1),\$NF}'|awk -F '%' '{if (\$1 > 80) {print \"$REMOTE_HOST\",\$1\"%\",\$2}}'>$FILE_SYSTEM_LOG";
    sleep 1; echo "exit") | telnet $REMOTE_HOST 2>&1 | grep -v "getwinsize" >tmp.out

   ftpGetFiles $REMOTE_HOST $REMOTE_USER $REMOTE_PWD /home/$REMOTE_USER $FILE_SYSTEM_LOG . >/dev/null
   ftpDelFiles $REMOTE_HOST $REMOTE_USER $REMOTE_PWD /home/$REMOTE_USER $FILE_SYSTEM_LOG >/dev/null
   cat $FILE_SYSTEM_LOG >> $LOG_FILE
   rm $FILE_SYSTEM_LOG
}

 

 

 

 

 

 

 

 

 

 

 

3.程序埠的檢查

checkRabbitMq(){
REMOTE_HOST=$1
REMOTE_USER=$2
REMOTE_PWD=$3
CHECK_MQ_SCRIPTS=checkMQ.sh

echo "oldIfs=\$IFS; IFS=':'
processNums=\`ps -ef | grep rabbitmq | grep -v grep | wc -l \`
if [ \$processNums -eq 1 ]; then
echo \"hostname:\" \`hostname\` ,\"RabbitMq,process status:true\"
else
echo \"hostname:\" \`hostname\`,\"RabbitMq,process status:false\"
fi
IFS=\$oldIfs">>$CHECK_MQ_SCRIPTS

ftpPutFiles $REMOTE_HOST $REMOTE_USER $REMOTE_PWD /home/$REMOTE_USER . $CHECK_MQ_SCRIPTS >/dev/null

(sleep 1; echo $REMOTE_USER;
sleep 1; echo $REMOTE_PWD;
sleep 1; echo "sh $CHECK_MQ_SCRIPTS";
sleep 2; echo "rm $CHECK_MQ_SCRIPTS";
sleep 1; echo "exit") | telnet $REMOTE_HOST 2>&1 | grep -v "getwinsize" >tmp.out

cat tmp.out |grep RabbitMq >>$LOG_FILE
rm tmp.out
}