1.脚本内容:
#!/bin/bash echo '##########################################' echo '###### The database is automatically backed up at 01:00 am every day ######' echo '##########################################' # Setting environment variables DATE=$(date +%Y%m%d) # 数据库用户名 USERNAME=root # 密码 PASSWORD=123 # 要备份的数据库 DB=database_name #DB1=xxxx # ubuntu 系统非 root 用户,要将备份产生的文件放到 xxx 用户所在的目录下,否则必须使用 sudo 输入管理员密码执行此脚本。 DIR=/home/xxx/data/mysqk_bak/mysql-xxxx_bak echo 'Get system date: ' $DATE if [ ! -d "$DIR" ]; then mkdir $DIR fi cd $DIR echo 'backup started...' $(date "+%Y-%m-%d %H:%M:%S") # 备份 docker 容器中的数据库 # docker exec -i 容器名称 mysqldump -u用户名 -p密码 要备份的数据库名称 | gzip > 要打包到的文件名称 docker exec -i q18qtjtx7z0qhc mysqldump -u$USERNAME -p$PASSWORD $DB | gzip > database_name_$DATE.sql.gz # 备份 直接安装在 linux 系统中的数据库 #/usr/bin/mysqldump -u$USERNAME -p$PASSWORD $DB2 | gzip > xxx_$DATE.sql.gz # just backup the latest 7 days find ${DIR} -name "database_name_*.sql.gz" -type f -mtime +7 -exec rm {} \; > /dev/null 2>&1 #find ${DIR} -name "database_name_*.sql.gz" -type f -mtime +7 -exec rm {} \; > /dev/null 2>&1 echo 'backup completed!' $(date "+%Y-%m-%d %H:%M:%S")
2.Linux添加定时任务
2.1 Ubuntu
# 给脚本文件赋权
chmod +x bak_mysql.sh 或 chmod 777 bak_mysql.sh
# 添加定时任务,每天1点执行
crontab -e
0 1 * * * sudo sh /home/xxxx/bak_mysql.sh
# 重启crond 生效,或直接service cron reload
[sudo] service cron reload
[sudo] service cron restart
2.2 CentOS
# 给脚本文件赋权
chmod +x bak_mysql.sh
# 添加定时任务,每天1点执行
crontab -e
00 1 * * * /usr/local/mysql/bak_mysql.sh
# 重启crond 生效,或直接service crond reload
service crond status
service crond stop
service crond start
3.可能遇到的问题
3.0 如执行脚本出现 command not found
3.0.1. 将新编写的shell脚本路径添加到系统的环境变量中:
export PATH=$PATH:/path # 当时有效
3.0.2. 给新编写的shell脚本添加可执行权限:
chmod +x /path/脚本.sh
3.1Ubuntu
3.1.1更改crontab的默认编辑器
vi /root/.selected_editor
修改以下内容:
SELECTED_EDITOR="/usr/bin/vim.basic"
保存,退出。crontab -e,即可使用vim编辑器。
3.1.2执行sh脚本报错
报错内容:/bin/sh^M: bad interpreter: No such file or directory
解决方法:
vi 报错脚本,按Esc,在命令模式下输入
: set ff=unix
回车,保存退出,再次执行脚本即可。
————————————————
版权声明:本文为CSDN博主「Engine523」的原创文章,
遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_32482743/article/details/115104259