Linux營運常用的Shell指令碼(帶註解)

來源:互聯網
上載者:User

Linux營運常用的Shell指令碼(帶註解)  在Linux日常營運中,shell指令碼是每個IT營運人員必備的利器,熟練編寫生產環境的shell指令碼,能協助我們更輕鬆,更好的、更快的完成日常營運工作,那我們來看幾個簡單的指令碼。歡迎指正,一起相互學習!  www.2cto.com  一、自動備份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 #如何Database Backup成功,則列印成功,並刪除備份目錄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方式安裝指令碼:  www.2cto.com  如下指令碼為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 指令碼:  www.2cto.com  如下指令碼為自動解壓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 以上指令碼屬於基本指令碼,更進階的指令碼歡迎大家提更多的意見,一起努力,指令碼這個東西看得多了,練習得多了,自然就熟練了,最重要就是要多實踐,實踐出真知!
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.