计划任务
21 13 * * * /home/mysql/dayback.sh >> /home/mysql/dayback.log 2>&1
实例1
FLAG='0'
databases=(db1 db2 db3 db4 mysql)
basepath='/data/mysqlbackup/'
if [ ! -d "$basepath" ]; then
mkdir -p "$basepath"
fi
if [ $FLAG -eq 0 ]; then
mysqldump -uroot -p******* --all-databases > $basepath-$(date +%Y%m%d).sql
tar zPcf $basepath-$(date +%Y%m%d).sql.tar.gz $basepath-$(date +%Y%m%d).sql
find $basepath -mtime +3 -name "*.sql.tar.gz" -exec rm -rf {} \;
else
for db in ${databases[*]}
do
mysqldump -uroot -p******* --databases $db > $basepath$db-$(date +%Y%m%d).sql
tar zPcf $basepath-$(date +%Y%m%d).sql.tar.gz $basepath-$(date +%Y%m%d).sql
find $basepath -mtime +3 -name "*.sql.tar.gz" -exec rm -rf {} \;
done
fi
rm -rf $basepath/*.sql
scp -r /data/mysqlbackup/*.gz 1.1.1.1:/home/mysqlback/
rm -rf $basepath/*.gz
实例2
配置scp免密
源主机生成公秘钥:ssh-keygen -t rsa
公钥复制到目标主机:ssh-copy-id user@目标主机IP
mysqldump -uroot -p******** --all-databases > /mysqlbak/baktmp.sql
tar zPcf /mysqlbak/$(date +%Y%m%d).sql.tar.gz /mysqlbak/baktmp.sql
rm -rf /mysqlbak/baktmp.sql
scp -r /mysqlbak/*.gz 1.1.1.1:/mysql_backup/1111/
rm -rf /mysqlbak/*.gz
find /mysql_backup/1111/ -mtime +7 -name "*.sql.tar.gz" -exec rm -rf {} \;