备份是容灾的基础,由于上次数据库被攻击,现在必须要做定时备份
- 1.先写脚本
创建并编辑文件 /usr/sbin/bakmysql.sh,命令:
vim /usr/sbin/bakmysql.sh
#===============================
#用户名
db_user="root"
#密码
db_passwd="XXXX"
#数据库名
db_name="zhoujiim"
# 备份到这个路径下
backup_dir="/home/backup"
#按时间生产备份文件命名
time="$(date +"%Y%m%d%H%M%S")"
mysqldump -u$db_user -p$db_passwd $db_name > "$backup_dir/$db_name"_"$time.sql"
#压缩备份文件
mysqldump -u$db_user -p$db_passwd $db_name | gzip > "$backup_dir/$db_name"_"$time.sql.gz"
#===================================
- 2.添加可执行权限
chmod +x /usr/sbin/bakmysql.sh
- 3.执行下,看能不能备份成功
[root@localhost backup]# cd /usr/sbin/
[root@localhost sbin]# ./bakmysql.sh
Warning: Using a password on the command line interface can be insecure.
Warning: Using a password on the command line interface can be insecure.
在命令行输入密码,就会提示这些安全警告信息。先暂时忽略,切换到备份文件路径下,已经成功了
-rw-r--r-- 1 root root 18881 4月 10 18:17 zhoujiim_20190410181714.sql
-rw-r--r-- 1 root root 4087 4月 10 18:17 zhoujiim_20190410181714.sql.gz
[root@localhost backup]#
=====================================
- 4.接下来得让它在定时任务里执行
======================================
执行 crontab 命令如果报 command not found,就表明没有安装。
我这里是安装有直接创建定时任务,
[root@localhost backup]# crontab -e
(1)加入命令,每天晚上10点执行
0 22 * * 0-6 /usr/sbin/bakmysql.sh 1>>/home/backup/expdp.log 2>&1
(2)crond 服务命令:
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
service crond status //查看服务状态
(3)crontab时间格式内容:
* * * * * command
M H D m d command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令或脚本内容