1、备份脚本
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
| mkdir -p /data/mysqlbak/{data,logs,scripts}
cd /data/mysqlbak/scripts
cat > backup.sh << EOF #!/bin/bash
DATE=$(date +%Y%m%d) BACKUP_ROOT=/data/mysqlbak BACKUP_FILEDIR=$BACKUP_ROOT/data/$DATE
mkdir -p $BACKUP_ROOT/data/$DATE source /etc/profile.d/mysql
DATABASES=$(mysql -uroot -peconage123 -e "show databases" | grep -Ev "Database|sys|information_schema|performance_schema|mysql")
for db in $DATABASES do echo echo ----------$BACKUP_FILEDIR/${db}_$DATE.sql.gz BEGIN---------- mysqldump -uroot -phello123 --default-character-set=utf8 -q -n --lock-all-tables --flush-logs -E -R --triggers -B ${db} | gzip > $BACKUP_FILEDIR/${db}_$DATE.sql.gz echo ----------$BACKUP_FILEDIR/${db}_$DATE.sql.gz COMPLETE------- echo done
echo "done" EOF
|
2、清理脚本
1 2 3 4 5 6
| cat > backup_clean.sh << EOF #!/bin/bash echo ----------CLEAN BEGIN---------- find /data/mysqlbak/data/ -mtime +14 -exec rm -rf {} \; echo ----------CLEAN COMPLETE------- EOF
|
3、给脚本执行权限
1 2
| chmod +x backup.sh chmod +x backup_clean.sh
|
4、设置定时任务
1 2 3
| crontab -e 00 1 * * 5 /data/mysqlbak/scripts/backup.sh 00 1 * * 5 /data/mysqlbak/scripts/backup_clean.sh > /data/mysqlbak/logs/backup_full_clean.log 2>&1
|