最近有意关注服务器数据的安全性,考虑到数据的不可逆性,定时备份便显得尤其重要,但是众多独立的数据库挨个命令行或者phpmyadmin备份显然不明智,于是参考网上类似的脚本改写了一个很简单但很实用的脚本分享给大家。
一,新建一个脚本;
vim /home/mysql-db-backup/backup.sh
#!/bin/bash
cd /home/mysql-db-backup
mysqldump -A -i --opt --lock-tables=0 -u root -p111111 > all_$(date +%y%m%d)_database.sql
参数说明:
-A 代表导出MYSQL里边所有数据库的数据到一个SQL文件里边;
-i 设置这个参数以后,可自动输入密码;
-p111111
其中111111为root密码,注意与-p之间不能有空格,否则将出错;
--lock-tables=0
防止出现 mysqldump: Got error: 1556: You can’t use locks with log tables. when using LOCK TABLES 这个错误;
$(date +%y%m%d)
导出的数据库文件按当前年月日命名,防止重复。
二,然后修改文件属性,使其可执行
chmod 750 /home/mysql-db-backup/backup.sh
三,添加到计划任务里边;
crontab -e
输入
00 00 * * 7 /bin/bash /home/mysql-db-backup/backup.sh
每周第七天晚上12点执行一次脚本。
四,重启crontab。
service crond restart
搞定收工! ^_^