Crontab 命令/新建任务/更新任务/日志

1. 简介
通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据备份等工作。

2. 命令格式

crontab [-u user] file crontab [-u user] [ -e | -l | -r ]

3. 命令参数
-u user:用来设定某个用户的crontab服务;
file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。
-e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
-l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
-r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
-i:在删除用户的crontab文件时给确认提示。

4. 文件格式
分 时 日 月 星期 要运行的命令
分钟0~59
小时0~23(0表示子夜)
日1~31
月1~12
星期0~7(0和7表示星期天)
要运行的命令
中间以空格隔开

5. 命令实例
每1分钟执行一次myCommand。*号之间用空格隔开

* * * * * myCommand

在上午13点到16点的第3和第15分钟执行

3,15 13-16 * * * myCommand

每隔两天的上午8点到11点的第3和第15分钟执行

3,15 8-11 */2  *  * myCommand

每周一上午8点到11点的第3和第15分钟执行

3,15 8-11 * * 1 myCommand

每月1、10、22日的3 : 37重启smb

37 3 1,10,22 * * /etc/init.d/smb restart

每星期六的晚上11 : 00 pm重启smb

0 23 * * 6 /etc/init.d/smb restart

每一小时执行一次myCommand

* */1 * * * myCommand

晚上11点到早上7点之间,每隔一小时执行一次myCommand

0 23-7 * * * myCommand

6. 创建一个新的crontab文件
创建一个名为usercron的文件,其中user是用户名,例如, bishopcron。在该文件中加入如下的内容。

# (put your own initials here)echo the date to the console every
# 15minutes between 6pm and 6am
0,15,30,45 18-06 * * * vi /home/bishop/test.py

注意添加注释,方便查看具体任务信息

7. 启动crontab
查看crontab 是否启动成功,检测crontab 服务是否启动:

/etc/init.d/crond status 

没启动则要用下面命令:

/etc/init.d/crond start

重启crond服务,命令为:

使用 /etc/init.d/crond restart

8. 加入crontab
crontab bishopcron 创建完成或者更新脚本内容之后更新定时作业

9. 查看日志
更新crontab文件以后,Linux系统会提示形如“You have mail in /var/xxx/mail/xxxx”的内容。
这时,可以使用tail命令跟踪“/var/xxx/mail/xxxx crontab_file_name”路径下crontab文件的执行日志。可以看到相关的报错或者执行信息。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
您可以使用 logrotate 工具来定期打包 /var/log/messages 日志文件。logrotate 工具可以在特定的时间间隔或者日志文件大小达到一定阈值时,自动对日志文件进行打包、压缩、删除等操作。 具体实现步骤如下: 1. 安装 logrotate 工具 在大多数 Linux 发行版中,logrotate 工具已经预装了,您可以通过以下命令检查是否已经安装: ``` logrotate --version ``` 如果没有安装,则可以使用以下命令安装: ``` yum install logrotate # CentOS/RHEL 系统使用的命令 apt-get install logrotate # Debian/Ubuntu 系统使用的命令 ``` 2. 编写 logrotate 配置文件 在 /etc/logrotate.d/ 目录下新建一个名为 messages 的配置文件,内容如下: ``` /var/log/messages { daily rotate 7 compress delaycompress missingok notifempty create 0600 root root } ``` 解释一下各个参数的含义: - daily:表示执行日志轮转的时间间隔为一天。 - rotate 7:表示保留最近的7个日志文件,旧的日志文件会被自动删除。 - compress:表示对日志文件进行压缩。 - delaycompress:表示延迟压缩,意思是在下一次轮转时才对上一次轮转的日志文件进行压缩。 - missingok:表示如果日志文件不存在,则忽略该文件,不报错。 - notifempty:表示如果日志文件为空,则不进行轮转。 - create 0600 root root:表示创建新的日志文件时,设置文件权限为 0600,属主和属组为 root。 3. 手动执行 logrotate 命令 手动执行以下命令,可以测试一下是否配置成功: ``` logrotate -vf /etc/logrotate.d/messages ``` -vf 参数表示显示详细的执行过程。 4. 配置定时任务 最后,您可以使用 crontab 工具来设置定时任务,以便每天自动执行 logrotate 命令。打开 crontab 编辑器: ``` crontab -e ``` 在编辑器中添加以下一行: ``` 0 0 * * * /usr/sbin/logrotate -f /etc/logrotate.d/messages ``` 以上命令表示每天0点整执行一次 logrotate 命令,-f 参数表示强制执行。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值