1、md5sum -c 可以用來批量校驗,方便查看文件是否被篡改
例子:
find /var/log -type f|xargs md5sum > md5list.txt #遞歸log下的文件的md5值輸出重定向到md5list.txt文件中 #使用md5sum校驗 [root@test test]# md5sum -c md5list.txt /var/log/tallylog: OK /var/log/lastlog: OK /var/log/wtmp: OK ......
2、使用wc -l來統計文件數量
例子:
[root@test test]# find /var/log -type f |wc -l 241
3、單個目錄下禁止執行php文件
#禁止執行php文件 location ~* ^/home/www/test/.*.(php|php5)$ { deny all; }
4、監控網站是否異常腳本
#!/bin/sh #filename is test.sh #source或. file.sh 重新執行剛修改的初始化文檔 [ -f /etc/init.d/functions ]&& . /etc/init.d/functions # $0:當前文件的名字 usage(){ echo "USAGE:$0 url" exit 1 } #初始化變量 RETVAL=0 #函數體 CheckUrl(){ # -T:限制時間10s -t:限制次數2 wget -T 10 --spider -t 2 $1 &>/dev/null # $?:記錄上一次命令的退出狀態 RETVAL=$? if [ $RETVAL -eq 0 ];then action "$1 url" /bin/true else action "$1 url" /bin/false fi return $RETVAL } main(){ if [ $# -ne 1 ];then usage fi CheckUrl $1 RETVAL=$? return $RETVAL } # $*:只允許傳參數爲1 main $*
5、小小跳板機(ssh遠程主機)
①創建一個menu腳本
#!/bin/bash function trapper(){ trap '' INT QUIT TSTP TERM HUP } function menu(){ cat <<EOF ============HOST LIST============ 1)192.168.13.129 2)192.168.13.130 3)exit ================================= EOF } function host(){ case "$1" in 1) ssh [email protected] ;; 2) ssh [email protected] ;; 3) exit 0 ;; *) menu esac } main(){ trapper while true do clear menu read -p "please input number:" num host $num done } main
②設置權限(腳本位置放在/etc/profile.d目錄下面)
[ $UID -ne 0 ]&&[ $USER != "test" ] &&\ . /test/menu.sh
除了uid爲0,user爲test的用戶都必須進入跳板機系統!
6、mysql分庫備份腳本
#!/bin/sh #數據庫備份路徑 backpath=/server/backup myuser=root mypass=admin123 #mysql.sock應該是mysql的主機和客戶機在同一host上的時候,使用unix domain socket做爲通訊協議的載體,它比tcp快. socket=/tmp/mysql.sock mycmd="mysql -u$myuser -p$mypass -S $socket" #-B:導出幾個數據庫,-x:提交請求鎖定所有數據庫中的所有表,以保證數據的一致性 #-R:導出存儲過程以及自定義函數.-F:在備份前刷新MySQL服務器的日誌 mydump="mysqldump -u$myuser -p$mypass -S $socket -x -B -F -R" #如果$backpath目錄不存在則創建 [ ! -d $backpath ] && mkdir -p $backpath dblist=`$mycmd -e "show databases;"|sed 1d|egrep -v "information_schema|performance_schema"` for dbname in $dblist do $mydump $dbname|gzip >${backpath}/${dbname}_$(date +%F).sql.gz done