Linux日常運維腳本

 在Linux日常運維中,shell腳本是每個IT運維人員必備的利器,熟練編寫生產環境的shell腳本,能幫助我們更輕鬆,更好的、更快的完成日常運維工作,那我們來看幾個簡單的腳本。歡迎指正,一起相互學習!

一、自動備份Mysql腳本:
如下腳本爲mysql自動備份腳本,僅供參考,可以根據實際情況修改。
#!/bin/sh 
#auto backup mysql 
#wugk  2012-12-12 
#Define PATH定義變量
BAKDIR=/data/backup/mysql/`date +%Y-%m-%d` 
MYSQLDB=webapp 
MYSQLPW=backup 
MYSQLUSR=backup 
#must use root user run scripts 必須使用root用戶運行,$UID爲系統變量
if 
   [ $UID -ne 0 ];then 
   echo This script must use the root user ! ! ! 
   sleep 2 
   exit 0 
fi 
#Define DIR and mkdir DIR 判斷目錄是否存在,不存在則新建
if 
   [ ! -d $BAKDIR ];then 
   mkdir -p $BAKDIR 
else 
   echo This is $BAKDIR exists.... 
fi 
#Use mysqldump backup mysql 使用mysqldump備份數據庫
/usr/bin/mysqldump -u$MYSQLUSR -p$MYSQLPW -d $MYSQLDB >$BAKDIR/webapp_db.sql 
cd $BAKDIR ; tar -czf  webapp_mysql_db.tar.gz *.sql 
#查找備份目錄下以.sql的文件並刪除
find  . -type f -name “*.sql” |xargs rm -rf 
#如何數據庫備份成功,則打印成功,並刪除備份目錄30天以前的目錄
[ $? -eq 0 ]&&echo “This `date +%Y-%m-%d` MySQL BACKUP is SUCCESS” 
cd /data/backup/mysql/ ;find .  -type d  -mtime +30 |xargs rm -rf 
echo "The mysql backup successfully "
二、Nginx case方式安裝腳本:
如下腳本爲Nginx自動安裝腳本,僅供參考,可以根據實際情況修改,這裏使用case方式,真實環境安裝可以去掉case這種模式,全自動安裝。
#!/bin/sh 
###nginx install shell 
###wugk 2012-12-12 
###Define PATH  定義變量
SOFT_PATH=/data/soft/ 
NGINX_FILE=nginx-1.2.4.tar.gz 
DOWN_PATH=http://nginx.org/download/ 
#Define DIR and mkdir soft DIR  創建軟件目錄
if 
    [ ! -d $SOFT_PATH ];then 
    mkdir -p $SOFT_PATH 
fi 
#Define download function  定義download函數
download () 
    cd $SOFT_PATH ;wget $DOWN_PATH/$NGINX_FILE 
#Define install function   定義install函數
install () 
    yum install pcre-devel -y 
    cd $SOFT_PATH ;tar xzf $NGINX_FILE  
    cd nginx-1.2.4/ &&./configure --prefix=/usr/local/nginx/ --with-http_stub_status_module --with-http_ssl_module 
    [ $? -eq 0 ]&&make &&make install 
#Start Nginx Server Define start function 定義start函數
start () 
    lsof -i :80 
   [ $? -ne 0 ]&&/usr/local/nginx/sbin/nginx 
#Stop Nginx Server Define stop function   定義stop函數
stop () 
 ps -ef |grep nginx |grep -v grep |awk '{print $2}'|xargs kill -9 
#Config Case menu install  配置case 安裝菜單
case  $1  in 
    download ) 
    download 
;; 
    install ) 
    install 
;; 
    start ) 
    start 
;; 
    stop ) 
    stop 
;; 
      * ) 
    echo "USAGE:$0 {download or install or start or stop}" 
    exit $? 
esac 
三、自動解壓TAR、ZIP 腳本:
如下腳本爲自動解壓tar包和zip包腳本,僅供參考,可以根據實際情況修改,可以舉一反三,應用到其他的應用中。
#解壓zip包腳本如下:
#!/bin/sh 
#auto tar package 
#wugk 2012-12-12 
#Define Path 
PATH1=/tmp/images 
PATH2=/usr/www/images 
#Print welcome info  
cat <<EOF 
++--------------------------------------------------------++ 
++---------welcome to use auto  tar scripts-------+ 
++--------------------------------------------------------++ 
EOF
#find Dir all TAR packages 查找/tmp/images目錄下所有的tar包
for i in `find  $PATH1  -name  "*.tar" ` 
do 
    tar -xvf  $i  -C $PATH2 
done 
#解壓TAR包腳本如下:
#!/bin/sh 
PATH1=/tmp/images 
PATH2=/usr/www/images 
#!/bin/sh 
PATH1=/tmp/images 
PATH2=/usr/www/images 
#Find Dir all ZIP packages 查找/tmp/images目錄下所有的tar包,並創建解壓目錄
cd $PATH1 
for i in `find  . -name  "*.zip"|awk  -F.  {print $2} ` 
do 
    mkdir -p   PATH2$i 
    unzip -o  .$i.zip  -d   PATH2$i 
done 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章