您的位置:首页 > 运维架构 > Linux

Linux日常运维脚本

2012-12-17 16:06 399 查看
在Linux日常运维中,shell脚本是每个IT运维人员必备的利器,熟练编写生产环境的shell脚本,能帮助我们更轻松,更好的、更快的完成日常运维工作,那我们来看几个简单的脚本。欢迎指正,一起相互学习!

[align=left]一、自动备份Mysql脚本:[/align]
[align=left]如下脚本为mysql自动备份脚本,仅供参考,可以根据实际情况修改。[/align]
[align=left]#!/bin/sh [/align]
[align=left]#auto backup mysql [/align]
[align=left]#wugk 2012-12-12 [/align]
[align=left]#Define PATH定义变量[/align]
[align=left]BAKDIR=/data/backup/mysql/`date +%Y-%m-%d` [/align]
[align=left]MYSQLDB=webapp [/align]
[align=left]MYSQLPW=backup [/align]
[align=left]MYSQLUSR=backup [/align]
[align=left]#must use root user run scripts 必须使用root用户运行,$UID为系统变量[/align]
[align=left]if [/align]
[align=left] [ $UID -ne 0 ];then [/align]
[align=left] echo This script must use the root user ! ! ! [/align]
[align=left] sleep 2 [/align]
[align=left] exit 0 [/align]
[align=left]fi [/align]
[align=left]#Define DIR and mkdir DIR 判断目录是否存在,不存在则新建[/align]
[align=left]if [/align]
[align=left] [ ! -d $BAKDIR ];then [/align]
[align=left] mkdir -p $BAKDIR [/align]
[align=left]else [/align]
[align=left] echo This is $BAKDIR exists.... [/align]
[align=left]fi [/align]
[align=left]#Use mysqldump backup mysql 使用mysqldump备份数据库[/align]
[align=left]/usr/bin/mysqldump -u$MYSQLUSR -p$MYSQLPW -d $MYSQLDB >$BAKDIR/webapp_db.sql [/align]
[align=left]cd $BAKDIR ; tar -czf webapp_mysql_db.tar.gz *.sql [/align]
[align=left]#查找备份目录下以.sql的文件并删除[/align]
[align=left]find . -type f -name “*.sql” |xargs rm -rf [/align]
[align=left]#如何数据库备份成功,则打印成功,并删除备份目录30天以前的目录[/align]
[align=left][ $? -eq 0 ]&&echo “This `date +%Y-%m-%d` MySQL BACKUP is SUCCESS” [/align]
[align=left]cd /data/backup/mysql/ ;find . -type d -mtime +30 |xargs rm -rf [/align]
[align=left]echo "The mysql backup successfully "[/align]
[align=left]二、Nginx case方式安装脚本:[/align]
[align=left]如下脚本为Nginx自动安装脚本,仅供参考,可以根据实际情况修改,这里使用case方式,真实环境安装可以去掉case这种模式,全自动安装。[/align]
[align=left]#!/bin/sh [/align]
[align=left]###nginx install shell [/align]
[align=left]###wugk 2012-12-12 [/align]
[align=left]###Define PATH 定义变量[/align]
[align=left]SOFT_PATH=/data/soft/ [/align]
[align=left]NGINX_FILE=nginx-1.2.4.tar.gz [/align]
[align=left]DOWN_PATH=http://nginx.org/download/ [/align]
[align=left]#Define DIR and mkdir soft DIR 创建软件目录[/align]
[align=left]if [/align]
[align=left] [ ! -d $SOFT_PATH ];then [/align]
[align=left] mkdir -p $SOFT_PATH [/align]
[align=left]fi [/align]
[align=left]#Define download function 定义download函数[/align]
[align=left]download () [/align]
[align=left]{ [/align]
[align=left] cd $SOFT_PATH ;wget $DOWN_PATH/$NGINX_FILE [/align]
[align=left]} [/align]
[align=left]#Define install function 定义install函数[/align]
[align=left]install () [/align]
[align=left]{ [/align]
[align=left] yum install pcre-devel -y [/align]
[align=left] cd $SOFT_PATH ;tar xzf $NGINX_FILE [/align]
[align=left] cd nginx-1.2.4/ &&./configure --prefix=/usr/local/nginx/ --with-http_stub_status_module --with-http_ssl_module [/align]
[align=left] [ $? -eq 0 ]&&make &&make install [/align]
[align=left]} [/align]
[align=left]#Start Nginx Server Define start function 定义start函数[/align]
[align=left]start () [/align]
[align=left]{ [/align]
[align=left] lsof -i :80 [/align]
[align=left] [ $? -ne 0 ]&&/usr/local/nginx/sbin/nginx [/align]
[align=left]} [/align]
[align=left]#Stop Nginx Server Define stop function 定义stop函数[/align]
[align=left]stop () [/align]
[align=left]{ [/align]
[align=left] ps -ef |grep nginx |grep -v grep |awk '{print $2}'|xargs kill -9 [/align]
[align=left]} [/align]
[align=left]#Config Case menu install 配置case 安装菜单[/align]
[align=left]case $1 in [/align]
[align=left] download ) [/align]
[align=left] download [/align]
[align=left];; [/align]
[align=left] install ) [/align]
[align=left] install [/align]
[align=left];; [/align]
[align=left] start ) [/align]
[align=left] start [/align]
[align=left];; [/align]
[align=left] stop ) [/align]
[align=left] stop [/align]
[align=left];; [/align]
[align=left] * ) [/align]
[align=left] echo "USAGE:$0 {download or install or start or stop}" [/align]
[align=left] exit $? [/align]
[align=left]esac [/align]
[align=left]三、自动解压TAR、ZIP 脚本:[/align]
[align=left]如下脚本为自动解压tar包和zip包脚本,仅供参考,可以根据实际情况修改,可以举一反三,应用到其他的应用中。[/align]
[align=left]#解压zip包脚本如下:[/align]
[align=left]#!/bin/sh [/align]
[align=left]#auto tar package [/align]
[align=left]#wugk 2012-12-12 [/align]
[align=left]#Define Path [/align]
[align=left]PATH1=/tmp/images [/align]
[align=left]PATH2=/usr/www/images [/align]
[align=left]#Print welcome info [/align]
[align=left]cat <<EOF [/align]
[align=left]++--------------------------------------------------------++ [/align]
[align=left]++---------welcome to use auto tar scripts-------+ [/align]
[align=left]++--------------------------------------------------------++ [/align]
[align=left]EOF[/align]
[align=left]#find Dir all TAR packages 查找/tmp/images目录下所有的tar包[/align]
[align=left]for i in `find $PATH1 -name "*.tar" ` [/align]
[align=left]do [/align]
[align=left] tar -xvf $i -C $PATH2 [/align]
[align=left]done [/align]
[align=left]#解压TAR包脚本如下:[/align]
[align=left]#!/bin/sh [/align]
[align=left]PATH1=/tmp/images [/align]
[align=left]PATH2=/usr/www/images [/align]
[align=left]#!/bin/sh [/align]
[align=left]PATH1=/tmp/images [/align]
[align=left]PATH2=/usr/www/images [/align]
[align=left]#Find Dir all ZIP packages 查找/tmp/images目录下所有的tar包,并创建解压目录[/align]
[align=left]cd $PATH1 [/align]
[align=left]for i in `find . -name "*.zip"|awk -F. {print $2} ` [/align]
[align=left]do [/align]
[align=left] mkdir -p PATH2$i [/align]
[align=left] unzip -o .$i.zip -d PATH2$i [/align]
[align=left]done [/align]
本文出自 “张沐槿” 博客,请务必保留此出处http://zhangmujin.blog.51cto.com/4471254/1091610
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux 日常