linux入门之任务计划crontab
来源:互联网 发布:网络大电影如何赚钱 编辑:程序博客网 时间:2024/05/20 19:17
crontab介绍
我们时常会有一些定期定时的任务,如周期性的清理一下/tmp,周期性的去备份一次数据库,周期性的分析日志等等。而且有时候因为某些因素的限制,执行该任务的时间会很尴尬。本文同你一起掀开Linux系统自动任务的神秘面纱。
1、基本概念
- crontab自动任务的理解
- 用于设置周期性被执行的指令
- 该命令读取指令存放于crontab文件中供后续读取和执行
- crond为其守护进程,一般在后台默默运行,不间断的检查是否有预定的作业需要执行。
- crontab命令的格式和参数
- 分 时 日 月 星期 <命令> <日志>
2、环境的准备
实验楼的linux系统,默认是没有启动日志和cron守护进程,需要手动启动
- 启动日志的命令
sudo service rsyslog start (已启动的可以不起)
- 启动crontab
- sudo cron -f &
- 操作截图如下
crontab 新增任务
使用vi编辑器进行编辑,输入i切到编辑模式
- crontab -e
查看结果
- 没有生成文件?日志报错“no mta installed discarding output”
sudo tail -f /var/log/syslog
- 查找原因,发现 书写格式有误 ,需在date之后加个空格。
*/1 * * * * touch /home/shiyanlou/$(date +\%Y\%m\%d\%H\%M\%S)
crontab使用
一个是linux系统,是存在多个用户的,那么每个用户建立的crontab是否会有冲突呢?当然不会冲突,要是冲突,就没有安全性和可靠性而言了。那么具体是怎么做到的呢?
1、配置文件的独立性
- 不同用户,在/var/spool/cron/crontabs里存在一个对应的配置文件
- 保证了 隔离、独立、有效
- 如下图,存在 root和shiyanlou 两个用户的crontab
2、守护进程cron自动执行
- 在etc目录下存在如下cron文件,这几个文件会让你的任务计划安装计划正确执行
- 1、 /etc/cron.daily,目录下的脚本会每天让执行一次,在每天的6点25分时运行;
- 2、 /etc/cron.hourly,目录下的脚本会每个小时让执行一次,在每小时的17分钟时运行;
- 3、/etc/cron.mouthly,目录下的脚本会每月让执行一次,在每月1号的6点52分时运行;
- 4、 /etc/cron.weekly,目录下的脚本会每周让执行一次,在每周第七天的6点47分时运行;
- 如下图所示
crontab进阶
设定crontab之后,系统管理员最关心的是crontab任务有没有按照计划执行完毕,执行过程中有没有出错?那么我们可以通过查看日志文件来了解请情况。
1、crontab系统日志
- 默认的系统日志 存在于 /var/log/syslog 文件里
- 自定义启用cron日志 通过编辑 /etc/rsyslog.d/50-default.conf配置文件,达到启用cron.log专用日志,详见下图
2、crontab执行日志
- 在crontab命令里,可以自定义执行日志的路径和名称【分 时 日 月 星期 <执行的命令> <执行的日志>】,如下两个实例:
(1) * 8 * * 0 /home/shiyanlou/mybin/back.sh 1>>/home/shiyanlou/back.log 2>>/home/shiyanlou/back.log(2) * 8 * * 0 /home/shiyanlou/mybin/back.sh >>/home/shiyanlou/back.log 2>&1
- (1)和(2)是两种不同的写法,但是含义是一样的
- 其中,“2>&1” 表示 2跟1使用同一个日志文件
- 其中, 1 表示执行的标准日志输出 ;2表示 执行异常的日志输出
作业
撰写一个crontab任务计划,使其完成在“每周日的上午8点自动执行一次备份脚本 back.sh”
- back.sh 是对该目录/home/shiyanlou/Code下的blog目录文件进行压缩打包;
- 结合上面设定的crontab自动任务,现补充 back.sh的脚本如下:
0 0
- linux入门之任务计划crontab
- linux crontab 计划任务入门
- linux计划任务之crontab
- Linux 计划任务之crontab
- Linux 计划任务之crontab
- Linux之任务计划crontab
- Linux入门:计划任务at、crontab
- Linux 任务计划之crontab命令
- 探索Linux之—CRONTAB计划任务
- Linux计划任务命令之crontab 命令
- linux crontab 计划任务
- linux crontab计划任务
- crontab linux计划任务
- Linux计划任务crontab
- linux crontab 计划任务
- linux crontab计划任务
- Linux计划任务crontab
- linux计划任务 Crontab
- TCP/IP协议栈 --- IP路由
- Java Runtime.exec()的使用
- Intellij idea 解决 maven工程的部分依赖问题
- Java中的多线程实现方式
- Android酷炫实用的开源框架(UI框架)
- linux入门之任务计划crontab
- NDK学习笔记1
- 我的个人博客开通啦,欢迎来吐槽,有何问题可发邮件到1207012718@qq.com反馈,谢谢~
- Jackson实现Object对象与Json字符串的互转
- 使用pod install发生的错误:[!] The 'XXX' target has frameworks with conflicting names: ummo
- Factorialize a Number
- UISearchController(使用、修改cancel文字)
- RabbitMQ~广播消息
- cookie和session的区别