linux系统,mysql数据库定时任务,备份数据库
#!/bin/bash
#备份目录
BACKUP_ROOT=/mysql/backup
BACKUP_FILEDIR=$BACKUP_ROOT/files
BACKUP_LOGDIR=$BACKUP_ROOT/logs
#当前日期
DATE=$(date +%Y%m%d)
######备份######
#查询所有数据库
#-uroot -proot表示使用root账号执行命令,且root账号的密码为:root
DATABASES=$(/usr/local/mysql/bin/mysql -uroot -p123456 -e "show databases" | grep -Ev "Database|sys|information_schema")
#DATABASES=$(mysql -u root -p root -e "SELECT SCHEMA_NAME FROM information_schema.SCHEMATA WHERE SCHEMA_NAME NOT IN ('sys','mysql','information_schema','performance_schema');" | grep -v "SCHEMA_NAME","ken.io")
echo $DATABASES
#循环数据库进行备份
for db in $DATABASES
do
echo
echo ----------$BACKUP_FILEDIR/${db}_$DATE.sql.gz BEGIN----------
/usr/local/mysql/bin/mysqldump -uroot -p123456 --default-character-set=utf8 -q --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"
定时执行:
命令
crontab -l
编辑加入
*/1 * * * * /mysql/backup/scripts/backup_full.sh all >> "/mysql/backup/logs/Build_$(date +"\%Y-\%m-\%d")".log 2>&1
定时时间 脚本所在位置 日志记录文件地址
=========================================================================================
附命令
------------
检测你的service路径
执行命令 which service
ps -ef | grep cron
-----------
执行命令 sudo /usr/sbin/service cron status , 查看crontab服务状态
root@ubuntu4146:/data/gitlabData/backups# sudo /usr/sbin/service cron status
cron start/running, process 1096
-----------
执行命令 sudo /usr/sbin/service cron reload 重新 cron 服务配置
root@ubuntu4146:/data/gitlabData/backups# sudo /usr/sbin/service cron reload
-----------
执行命令 sudo /usr/sbin/service cron restart , 重新启动 cron 服务
root@ubuntu4146:/data/gitlabData/backups# sudo /usr/sbin/service cron restart
cron stop/waiting
cron start/running, process 1096
-----------
执行命令 sudo /usr/sbin/service cron stop , 停止 cron 服务
root@ubuntu4146:/data/gitlabData/backups# sudo /usr/sbin/service cron stop
cron stop/waiting
-----------
crontab -e 编辑
crontab -l 查看