SHELL脚本自动化备份MYSQL数据库
Posted python运维实践
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SHELL脚本自动化备份MYSQL数据库相关的知识,希望对你有一定的参考价值。
一、任务描述:
写一个自动化脚本,每天2点将school数据库的score表备份并上传到FTP服务器backup目录。
二、程序代码
#auto_backup.sh
db_user="dbuser"
db_password="123456"
db_host="192.168.100.109"
ftp_user="ftpuser"
ftp_password="111111"
ftp_host="192.168.100.103"
dst_dir="/home/ftpuser/backup"
time_date="`date +%Y%m%d%H%M%S`"
file_name="school_score_${time_date}.sql"
function auto_ftp
{
ftp -niv << EOF
open $ftp_host
user $ftp_user $ftp_password
cd $dst_dir
put $1
bye
EOF
}
mysqldump -u"$db_user" -p"$db_password" -h"$db_host" school score > ./$file_name && auto_ftp ./$file_name
三、建立定时任务
[ ]
no crontab for root - using an empty one
crontab: installing new crontab
[ ]
*/2 * * * * /usr/sbin/ntpdate 58.220.207.226 &> /dev/null
00 02 * * * sh auto_backup.sh &> /dev/null
四、测试效果
为测试方便,这里时间改为每1分钟,测试完成后删除定时任务。
[root@192 ~]# systemctl status crond
● crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
Active: active (running) since 六 2020-04-04 09:48:09 CST; 6h ago
Main PID: 995 (crond)
CGroup: /system.slice/crond.service
└─995 /usr/sbin/crond -n
4月 04 09:48:09 192.168.100.103 systemd[1]: Started Command Scheduler.
4月 04 09:48:09 192.168.100.103 systemd[1]: Starting Command Scheduler...
4月 04 09:48:09 192.168.100.103 crond[995]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 89% if used.)
4月 04 09:48:13 192.168.100.103 crond[995]: (CRON) INFO (running with inotify support)
[root@192 ~]#
[root@192 ~]# cd /home
[root@192 home]# cd ftpuser
[root@192 ftpuser]# ls
backup school.sql score.sql
[root@192 ftpuser]# cd backup
[root@192 backup]# ll
总用量 8
-rw-r--r--. 1 ftpuser ftpuser 1982 4月 4 16:29 school_score_20200404162932.sql
-rw-r--r--. 1 ftpuser ftpuser 1982 4月 4 20:30 school_score_20200404203001.sql
[root@192 backup]# ll
总用量 16
-rw-r--r--. 1 ftpuser ftpuser 1982 4月 4 16:29 school_score_20200404162932.sql
-rw-r--r--. 1 ftpuser ftpuser 1982 4月 4 20:30 school_score_20200404203001.sql
-rw-r--r--. 1 ftpuser ftpuser 1982 4月 4 20:31 school_score_20200404203101.sql
-rw-r--r--. 1 ftpuser ftpuser 1982 4月 4 20:32 school_score_20200404203201.sql
[root@192 backup]# crontab -r
[root@192 backup]# crontab -l
no crontab for root
上面测试中,需要搭建vsftp服务,并以本地模式登录,权限设置略。
学习|生活|分享|积累|永不停步
请留下你指尖的温度
让太阳拥抱你
微信ID:haopython
以上是关于SHELL脚本自动化备份MYSQL数据库的主要内容,如果未能解决你的问题,请参考以下文章