此次备份我们需要用到linux的crontab命令
一、查看当前用户是否为root 制定root用户执行定时任务
whoami
二、检查 crontab运行情况
service crond status
如果crond服务没有开启,执行启动 crond服务命令,启动crond服务
# 启动cron service crond start
# 关闭cron service crond stop
# 重启cron service crond restart
三、创建sh脚本文件,编辑脚本,并给sh文件赋权限:chmod +rx 文件
因为我是将项目文件和sql语句进行备份 所以我的back.sh如下:
#!/bin/sh
mysqldump -uroot -pabc o2o > /root/backup/sql/o2o`date +%Y%m%d%H%M%S`.sql
tar -zcvf /root/backup/image/image`date +%Y%m%d%H%M%S`.tar.gz /image/upload/
四、可以通过crontab -e 编写定时执行back.sh命令 进入编辑页面 添加下面代码
* * * * * sh /root/backup/backup.up
- 参数说明:
-e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
-r : 删除目前的时程表
-l : 列出目前的时程表
* * * * * 为cron表达式 意思为 每分钟执行一次back.up指令
cron表达式可在在线cron表达式中进行查询
sh 后面为绝对路径
编写完成wq 保存退出就自动安装此定时任务了
通过查看tail -f /var/cron 有些服务器地址在 tail -f /var/spool/cron验证定时任务是否开启。
我使用的阿里云添加* * * * * sh /root/backup/backup.up命令后一直无效。后面使用的是vim /etc/crontab
*/1 * * * * /root/backup/backup.sh >> /root/backup/log 添加此cron表达式wq
记得在相应目录下创建输出日志log
- 启动 crontab start crond.service
- 查看输出日志看定期任务是否执行。
- 到相应目录看文件是否备份完成
在百度上看到了vim /etc/crontab 和 crontab -e 的区别最后说一下
出自自奔跑在路上博客51CTO博客,原文链接http://blog.51cto.com/qiangsh/1979934
crontab -e 与 vi /etc/crontab 的区别:
1
crontab -e 系统会检查语法,而vi /etc/crontab不检查语法。
2
crontab -e的写法与vi /etc/crontab也有微小差异,拿时间同步来说明:
crontab -e的格式:
*/10 * * * * /usr/sbin/ntpdate ntp.api.bz >/dev/null 2>&1
vi /etc/crontab的格式:
*/10 * * * * root /usr/sbin/ntpdate ntp.api.bz >/dev/null 2>&1
注:在vi /etc/crontab时,一定要加入用户,否则不会生效。而crontab -e定制定时任务时,则不需要 添加用户,否则也会失效。
查看定时任务是否配置成功可以使用:tail -f /var/log/cron 来进行判断。
推荐使用crontab -e来定制定时任务。