生产环境备份shell脚本

批量备份多个数据库

#!/bin/bash

BACKUP_HOST="localhost"

BACKUP_USER="root"

BACKUP_PASS="123456"

BACKUP_DIR="/backup/mysql"

BACKUP_DBNAME="one two three"

COPIES=10

MYSQLDUMP="mysqldump"

TIMEPOINT=$(date +%Y-%m-%d)

MYSQLDUMP_OPTS="-h $BACKUP_HOST -u$BACKUP_USER -p$BACKUP_PASS"

umask 0077

test ! -d "$BACKUP_DIR" && mkdir -p "$BACKUP_DIR"

test ! -w $BACKUP_DIR && echo "Error: $BACKUP_DIR is un-writeable." && exit 0

for dbname in $BACKUP_DBNAME

do

   test ! -d "$BACKUP_DIR/$dbname" && mkdir -p "$BACKUP_DIR/$dbname"

   $MYSQLDUMP $MYSQLDUMP_OPTS $dbname | gzip > $BACKUP_DIR/$dbname/$dbname.$TIMEPOINT.sql.gz

done

find $BACKUP_DIR -type f -mtime +$COPIES -delete


网站目录备份

#!/bin/bash

BACKUP_DIR=/backup/website

WEBSITE_DIR=/www

TIMEPOINT=$(date +%Y-%m-%d)

COPIES=10

test ! -d "$BACKUP_DIR" && mkdir -p "$BACKUP_DIR"

test ! -w $BACKUP_DIR && echo "Error: $BACKUP_DIR is un-writeable." && exit 0

umask 0077

tar -zcf $BACKUP_DIR/www.$TIMEPOINT.tar.gz $WEBSITE_DIR

find $BACKUP_DIR -type f -mtime +$COPIES -delete


目录rsync同步(需先安装配置rsync)

#!/bin/sh

srcdir1=/www/example1.com

srcdir2=/www/example2.com

[email protected]::example1

[email protected]::example2

rsync -avz --delete --progress --password-file=/backup/bash/rsync.pas $srcdir1 $dstdir3 &

rsync -avz --delete --progress --password-file=/backup/bash/rsync.pas $srcdir2 $dstdir4 &


nginx日志切割

#!/bin/bash

logs_path="/usr/local/webserver/nginx/logs/"

mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/

mv ${logs_path}access.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" +"%Y%m%d").log

kill -USR1 `cat /usr/local/webserver/nginx/nginx.pid`

你可能感兴趣的:(生产环境备份shell脚本)