Linux例行性工作crontab

种类:at,cron

  • 一种是例行性的,就是每隔一定的周期需要执行的工作,如crontab,可以设定年、月、日、时、分循环执行。
  • 一种是突发性的,就是这次工作做完了就没有了,如at命令;

常见的例行性工作

  • 进行 登录记录的轮询(log rotate),主动记录系统的各种运行信息,当日志文件大小达到一定程度时,重建文件保存。
  • 登录文件分析logwatch的任务,当系统运行发生软件、硬件等故障时,该任务主动分析系统日志文件,将分析结果以邮件形式发送。
  • 建立locate数据库,用户locate指定本地查询。
  • whatis数据库建立。
  • RPM软件登录文件的建立,系统常常会更新软件,记录便于追踪。
  • 移除暂存档,tmpwatch指令来删除暂存档,释放磁盘空间。
  • 与网络服务有关的分析行为
执行一次:at
安装:[root@localhost ~]# yum install at
重启:[root@localhost ~]# systemctl restart atd
自启动:[root@localhost ~]# systemctl enable atd
查看状态:[root@localhost ~]# systemctl status atd

利用/etc/at.allow和/etc/at.deny俩个文件限制可以进行at的使用

  • 先查询/etc/at.allow文件,如果有才能使用at,否则不能使用at(即使没有写在at.deny中)
  • 如果/etc/at.allow不存在,就寻找/etc/at.deny这个文件,若写在这个at.deny的使用者则不能使用at,而没有在这个at.deny文件中的使用者,就可以使用at
  • 如果这俩个文件都不存在,那么只有root可以使用 at这个指令
循环执行:crontab

限制使用 crontab 的使用者账号:

  • /etc/cron.allow:将可以使用 crontab 的账号写入其中,若不在则不能使用 crontab;
  • /etc/cron.deny:记录不可以使用 crontab 的账号,若未记录、就可以使用crontab 。

语法:

crontab [-u username] [-l|-e|-r]
-u :只有 root 才能执行,即帮其他使用者创建/删除 crontab 计划任务
-e :编辑 crontab 的工作内容
-l :查阅 crontab 的工作内容
-r :删除所有的 crontab计划任务,若仅要删除一项,请用 -e 去编辑。
# crontab -e
SHELL=/bin/bash
MAILTO=root@example.com
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed

发表回复