背景
实际项目开发中,为了数据安全,我们需要对数据库做定时备份,防止意外发生时,还有补救的余地,每天人工手动备份数据,耗时耗力,而且,还不能在工作时间备份,容易锁表影响系统使用,通常需要在凌晨进行备份。
自动备份脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| #!/bin/sh
source /etc/profile source ~/.bash_profile
data_dir=/data/backup/mysql-data
if [ ! -d "${data_dir}" ]; then mkdir -p "${data_dir}" fi
sql_filename="$(date +%Y-%m-%d_%H-%M-%S)" del_filename="$(date -d "-10 day" +%Y-%m-%d_%H-%M-%S)"
mysqldump --databases test -P3306 -uroot -proot > "${data_dir}/test.${sql_filename}.sql"
find /data/backup/mysql-data -mtime +10 -name "*.gz" -exec rm -Rf {} \;
tar -czvf "${data_dir}/test.${sql_filename}.sql.tar.gz" "${data_dir}/test.${sql_filename}.sql"
rm -rf "${data_dir}/test.${sql_filename}.sql"
|