首先先建立备份地址:
sudo mkdir /bak
sudo mkdir /bak/mysqlbak
之后添加备份脚本:
vi /usr/local/mysql_backup.sh
之后输入:
#!/bin/bash
#mysqldump 是用于备份的bash
#PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
BACK_DIR=/bak/mysqlbak #备份文件存放路径
LINUX_USER=root #系统用户名
DB_NAME=database_name #要备份的数据库名字
DB_USER=root #数据库账号 注意:非root用户要使用备份参数 --skip-lock-tables,否则
DB_PASS=************ #数据库密码
cd $BACK_DIR #进入备份存放的目录
DATE=`date +%Y%m%d` #获取当前系统的时间,注意:date写法
BACK_SQL=$DATE.sql #备份数据库的文件名
TAR_SQL="mysqldata_bak_$DATE.tar.gz" #最终保存的数据库备份文件名
mysqldump -u$DB_USER -p$DB_PASS $DB_NAME --opt -Q -R --skip-lock-tables>$BACK_SQ
tar -czf $TAR_SQL ./$BACK_SQL #压缩为备份数据库文件为.tar.gz格式
rm $BACK_SQL #删除.sql格式的备份文件
chown $LINUX_USER:$LINUX_USER $BACK_DIR/$TAR_SQL #更改备份数据库文件的所有者
:wq保存推出后,sudo chmod 777 /usr/local/mysql_backup.sh给予权限
之后终端中输入sudo select-editor
一般来说选择vim,但是也可以自己选不同的编辑器
选完后,终端输入crontab -uroot -e
在其中输入10 5 * * * /usr/local/mysql_backup.sh > /bak/mysqlbak/reason.log 2>&1
其中10和5代表分和时,即5:10,* * * 分别代表日、月、星期,以上内容总的来说就是每天5:10自动执行/usr/local/mysql_backup.sh > /bak/mysqlbak/reason.log 2>&1这条命令,如果想要每分钟执行一次的话,就改为* * * * * /usr/local/mysql_backup.sh > /bak/mysqlbak/reason.log 2>&1。
所有的事情已经做完,这时只要重新启动crontab,/etc/init.d/cron restart
可以运行看一下效果,crontab -l
如果没有什么问题就等着脚本自动帮你备份吧!