crontab命令
使用crontab进行定时数据备份
定时备份数据库:
1.既然是定时备份,就要选择一个空间充足的磁盘空间,避免出现因空间不足导致备份失败,数据丢失的恶果!
存储到当前磁盘这是最简单,却是最不推荐的;服务器有多块硬盘,最好是把备份存放到另一块硬盘上;有条件就选择更好更安全的存储介质;
df -h
2.创建备份目录:
cd /home mkdir backup cd backup
3.创建备份Shell脚本:
vi bkDatabaseName.sh #!/bin/bash mysqldump -uusername -ppassword DatabaseName > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql mysqldump -uusername -ppassword DatabaseName | gzip > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz 对备份进行压缩
4、添加可执行权限
chmod u+x bkDatabaseName.sh
5、添加定时任务
crontab -e */1 * * * * /home/backup/bkDatabaseName.sh
sudo select-editor 修改默认编辑器
cron服务有关的调用命令如下
service cron start //启动服务 service cron stop //关闭服务 service cron restart //重启服务 service cron reload //重新载入配置 service cron status //查看服务状态
- m 每个小时的第几分钟执行该任务
- h 每天的第几个小时执行该任务
- dom 每月的第几天执行该任务
- mon 每年的第几个月执行该任务
- dow 每周的第几天执行该任务 – command 指定要执行的程序
示例:
分 小时 日 月 星期 命令
0-59 0-23 1-31 1-12 0-6 command
还可以使用下列特殊字符,更细致的设定时间
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如/10,如果用在minute字段,表示每十分钟执行一次。
设置执行频率为8-23点每小时的第5分钟执行一次:
5 8-23/1 * * * /home/myshell.sh
mysql备份:
#!/bin/bash PATH=$PATH /usr/bin/mysqldump -ubms -pbms@2018 jh_rule > /home/weidj/jh_rule-backup/mysql/jh_rule_mysql_$(date +%Y%m%d_%H%M%S).sql */1 * * * * /home/weidj/mysql_bak.sh
postgres备份
#!/bin/bash PATH=$PATH cur_time=$(date '+%Y%m%d_%H%M%S') export PGPASSWORD=123456 echo "备份数据库":/home/weidj/jh_rule-backup/postgres/pg-jh_rule_$cur_time.sql pg_dump -U postgres jh_rule -h 127.0.0.1 -p 15432 > /home/weidj/jh_rule-backup/postgres/pg-jh_rule_$cur_time.sql echo "压缩数据库":/home/weidj/jh_rule-backup/postgres/pg-jh_rule_$cur_time.sql tar jcvf /home/weidj/jh_rule-backup/postgres/pg-jh_rule_$cur_time.sql.tar.bz2 /home/weidj/jh_rule-backup/postgres/pg-jh_rule_$cur_time.sql echo "删除未压缩文件":/home/weidj/jh_rule-backup/postgres/pg-jh_rule_$cur_time.sql rm -rf /home/weidj/jh_rule-backup/postgres/pg-jh_rule_$cur_time.sql */30 * * * * /home/weidj/postgres_bak.sh
I can feel you forgetting me。。 有一种默契叫做我不理你,你就不理我