cronb命令
在Linux中,周期执行的任务一般由cron这个守护进程来处理。ps -ef | grep cron。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。
cron的配置文件称为"crontab",是"cron table"的简写。
cron在3个地方查找配置文件:
/var/spool/cron/ 这个目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名。一般一个用户最多只有一个crontab文件。
/etc/crontab 这个文件负责安排由系统管理员制定的维护系统以及其他任务的crontab
/etc/cron.d 这个目录用来存放任何要执行的crontab文件或脚本
crontab的权限问题到/var/adm/cron下看文件cron.allow和cron.deny是否存在。若两个文件都存在,则只有root用户才能使用crontab命令;若cron.allow存在但cron.deny不存在,则只有列在cron.allow文件里的用户才能使用crontab命令,若root用户也不再cron.allow中,则root也不能使用crontab;若cron.allow不存在,cron.deny存在,则只有列在cron.deny文件里面的用户不能使用crontab命令,其他用户都能使用;若两个文件都存在,则列在cron.allow文件中的用户可以使用crontab。
在crontab文件中需输入执行的命令和时间。该文件中每行都包括六个域,其中前五个域是指定命令被执行的时间,最后一个域是要被执行的命令。
每个域之间使用空格或者制表符分割。格式:
minute(0-59) hour(0-23) day-of-month(1-31) month-of-year(0-12) day-of-week(0-6) commands
除了上述限定范围还有几个特殊的符号就是*、/、-、,。*代表所有的取值范围内的数字,\代表每的意思(\5每5个单位),-代表从某个数字到某个数字,,代表几个离散的数字
cron是linux的内置服务,它不自动启动。
/sbin service crond start #启动服务
/sbin service crond stop #关闭服务
/sbin service crond restart #重启服务
/sbin service crond reload #重新载入配置
在/etc/rc.d/rc.local这个脚本末尾加上/sbin/service crond start,则在系统启动的时候自动启动了。
cron命令的一些参数与说明
crontab -u #设定某个用户的cron服务,一般root用户在执行这个命令的时候需要次参数
crontab -l #列出某个用户cron服务的详细内容
crontab -r #删除每个用户的cron服务
crontab -e #编辑某个用户的cron服务
30 5 * * * ls 指定每天的 5:30 执行ls命令
at命令
若我们只想要让特定任务执行一次,这种情况下比较适合at监控程序。at类似打印进程,会把任务放到/var/spool/at目录中,到指定时间运行它。at命令相当于一个shell,运行at time命令时,他发送一个命令,可以输入任意命令或者程序。格式:at now time
linux默认不启动,service atd status检查atd的状态。service atd start启动atd服务。at执行的具体内容一般位于/var/spool/at目录下。
at 5pm 3 days /bin/ls #三天后的5点执行/bin/ls