Linux计划任务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux计划任务相关的知识,希望对你有一定的参考价值。

开机自动启动服务

Centos7:systemctl is-enabled "servicename"

        systemctl enabled "servicename"(设为开机启动)

Centos6:chkconfig --list "servicename"

        chkconfig --add "servicename"(1 设为开机启动)

        chkconfig "servicename" on(2 设为开机启动)

计划任务

at:atd服务,适用于一次性的计划任务

at [option] 时间(默认情况下所有的标准输出都不会显示,执行结果会以邮件方式发送在)

            建议:如果脚本要放到计划任务中执行,要将执行结果输入到/dev/null中,否则会产生大量的垃圾邮件

  at "time" wall 10:00 clock(到了10:00广播10:00到了 Ctrl -d保存退出)

  /var/spool/at下存有计划任务

  -l 查看计划任务

  -c "任务编号" :显示详细的任务信息

  -d "任务编号"或 atrm "任务编号":删除指定任务编号

  -V 查看当前atd服务版本

由于at是交互式程序,当需要脚本来创建计划任务的时候则可以使用重定向输入:at 12:00 <<EOF,然后输入指定内容即可

  -f "文件名" 将文件内容输入到at中

  -m 当计划任务完成后判断是否成功

TIME:定义出什么时候进行at这项任务的时间

  HH:MM[yyyy-mm-dd]定义年月日

  noon,midnight,teatime(4pm)

  tomorrow

now+#{min,hours,days,weeks}

at now+20min(20分钟后执行,20分钟后的整数时间,其他时间相似于这个)


白名单:at.allow(默认不存在)

黑名单:at.deny(默认存在)

如果要使普通用户不能执行at,则编辑/etc/at.deny,将要限制的用户加入这个文件即可

如果一个用户既在at.deny中也在at.allow(白名单)中则是允许执行

当有白名单at.allow这个文件后,就意味着所有不在at.allow文件中的普通用户统统拒绝

如果没有白名单也没有黑名单则普通用户都没有权限执行at


周期性计划任务cron

/var/spool/cron中存放创建的计划任务

/var/log/cron中存放的是cron的日志

crond服务依赖于一个cronie(主程序包)的包,提供crond服务,包含crond服务以及配置文件

                  cronie-anacron辅助程序包,rpm -ql cronie-anacron,会列出一系列目录,当中/etc/anacrontab是配置文件

/etc/cron.daily存放每天执行的任务

                  crontab是计划任务非常重要的一个配置文件

系统计划任务:/etc/crontab

            分钟 小时 日 月 周(0 or 7都表示周日)

*/10 * * * * "username" "exec command" (每十分钟执行)

每月的号 数与星期几同时存在默认是或的关系

@reboot 重启之后执行

@yearly 0 0 1 1 *(每年一月一号0点0分)

@annually 0 0 1 1 *(一月一号0点0分执行)

@monthly 0 0 1 * *(每月1号0点0分执行)

@weekly 0 0 * * 0(每个周日0点0分执行)

@daily 0 0 * * *(每天的0点0分执行)

@hourly 0 * * * *(每小时整执行)

        * * * * *(每分钟执行)

在计划任务中,%符号有着特殊意义

/etc/cron.d/中可以存放一系列计划任务文件

Centos6:/etc/cron.daily/tmpwatch中用来定时清除临时文件的

Centos7:systemctl status systemd-tmpfiles-setup(查看清除临时文件的程序状态)

用户计划任务:

crontab -e(普通用户创建计划任务,默认打开的是vi程序,没有颜色,编辑变量export EDITOR=vim即可)

crontab -l(查看计划任务)

crontab -l -u 'username' 查看指定用户的计划任务

crontab -r -u 'username' 删除指定用户的计划任务

crontab -i -r 出现是否删除的提示信息

控制用户执行计划任务:

/etc/cron.{allow,deny}

sleep可以实现每几秒实现一次

sleep 10;command(每10s执行一次)


以上是关于Linux计划任务的主要内容,如果未能解决你的问题,请参考以下文章

linux-计划任务atcrontab

linux计划任务执行脚本显示乱码

Linux系统计划任务管理

linux脚本放到计划任务里面执行结果与手动运行不一致

Linux中滴计划任务

Linux计划任务