1.数据库备份
使用场景:mysql数据库中有多个数据库要备份,排除系统的库
原代码:
#!/bin/bash
#在mysql数据同步后,开启主从,用于同步异常后恢复主从
ip=172.29.1.33
ip2=172.29.1.34
user=slave
password=*********
#得到对应主机mysql的master信息
file=`mysql -uroot -h$ip -e "show master status"|grep mysql|awk '{print $1}'`
position=`mysql -uroot -h$ip -e "show master status"|grep mysql|awk '{print $2}'`
mysql -uroot -h$ip2 <<EOF
stop slave;
reset slave all;
change master to master_host="$ip",master_user="$user",master_password="$password",master_port=3306,master_log_file="$file",master_log_pos=$position,master_connect_retry=30;
start slave;
EOF
3.升级nginx,注意参数个数,要输入最新nginx的下载地址
#!/bin/bash
#用法:"./update_nginx.sh 最新nginx的官网url链接"
#说明:下载nginx原文件,编译后把新的二进制nginx文件拷贝到老的目录下,拷贝前备份,用于升级nginx,之后可以直接重启升级,也可以采用平滑模式升级
nginx_url=$1
nginx_path='/usr/local/'
file_name=`echo $nginx_url|awk -F/ '{print$5}'|awk -F".t" '{print$1}'`
#获取编译模块的参数
nginx -V &>$nginx_path/temp
arguments=`cat $nginx_path/temp|awk -F"arguments:" '{print$2}'|grep -v ^$`
#arguments="--prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module"
#官网下载对应软件包,有就跳过
[ -f ${nginx_path}${file_name}.tar.gz ] || `which wget` $nginx_url -P $nginx_path
#解压软件包
`which tar` zxf ${nginx_path}${file_name}.tar.gz -C $nginx_path
#编译+make(不要make install)
cd ${nginx_path}${file_name}/
./configure $arguments
make
#备份原始二进制nginx
cd ${nginx_path}nginx/sbin/
mv nginx nginx$(date +%Y%m%d)
#拷贝新的二进制nginx到对应目录
cp ${nginx_path}${file_name}/objs/nginx ${nginx_path}nginx/sbin/
4.nginx日志切割