data_backup.sh
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 34 35 36
| #!/bin/bash
DIR="/usr/local/data/data_backup" DATE=date +%Y%m%d%H%M%S DATE_DAY=date +%Y%m%d echo $DATE DB_HOST="127.0.0.1" DB_USER="root" DB_PASS="dbpwd"
mkdir ${DIR}/${DATE_DAY} cd ${DIR}/${DATE_DAY}
/usr/local/mysql/bin/mysqldump -h${DB_HOST} -u${DB_USER} -p${DB_PASS} --databases dbname >dbname-${DATE}.sql
if [ $? -eq 0 ] then tar -zcf mydatabase-${DATE}.sql.tgz dbname-${DATE}.sql else sleep 20
/usr/local/mysql/bin/mysqldump -h${DB_HOST} -u${DB_USER} -p${DB_PASS} --databases dbname >dbname-${DATE}.sql
if [ $? -eq 0 ];then tar -zcf mydatabase-${DATE}.sql.tgz dbname-${DATE}.sql fi
rm -rf dbname-${DATE}.sql
#find $DIR -type d -mtime +30 |xargs rm -rf
DATE_STR=date +%Y%m%d%H%M%S
echo $DATE >>${DIR}/${DATE_DAY}/mysql_dump$DATE_DAY.log
echo $DATE_STR >>${DIR}/${DATE_DAY}/mysql_dump$DATE_DAY.log
|
1 2
| #设置脚本data_backup.sh有可执行的权限 chmod +x ./data_backup.sh
|
1 2 3 4 5
| crontab -e #添加计划任务
0 23 * * * /usr/local/data/data_backup.sh
systemctl start crond.service #设置cron开机启动
|
解决:mysqldump: [Warning] Using a password on the command line interface can be insecure.
1 2 3 4 5 6 7
| vim /etc/my.cnf
[mysqldump] host=127.0.0.1 user=root password=123456 port=3306
|
修改完配置文件后,只需要执行mysqldump脚本就可以了;备份脚本中不需要涉及用户名密码相关信息