Linux运维常用的Shell脚本(带注解)

    在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 <

++--------------------------------------------------------++ 

++---------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 

以上脚本属于基本脚本,更高级的脚本欢迎大家提更多的意见,一起努力,脚本这个东西看得多了,练习得多了,自然就熟练了,最重要就是要多实践,实践出真知!

本文出自 “烟雨楼台” 博客,请务必保留此出处http://wgkgood.blog.51cto.com/1192594/1087514

你可能感兴趣的:(linux)