XC主机定时任务配置方法

XC主机自带 cron 服务可以用来配置定时任务。定时任务的配置方式有三种,可以适用于不同情形

 

1.使用 crontab -e

用户配置自己的定时任务时,可以使用

crontab -e

命令打开一个定时任务文件配置,配置仅有该用户的执行权限。配置完成后会在 /var/spool/cron/crontabs/ 目录下生成一个以配置用户的用户名命名的文件。可以使用下面命令查看

sudo ls /var/spool/cron/crontabs/

 

这个文件即为刚刚配置好的定时任务文件。

下面是文件的默认内容:

# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command

需要配置具体任务时,可以根据上面的示例在文件下方空白处编辑配置

0   5   *   *   1   tar -zcf /var/backups/home.tgz /home/
分  时  日   月  周   命令

意义为每周一 5 时 执行后面的打包压缩操作

如果需要设置每隔多久执行,可以使用下面的格式

* * */2 * *     tar -zcf /var/backups/home.tgz /home/

意义为每隔 2 天执行一次后面的压缩操作,使用“*/数字“表示每隔多久

配置完成后,如果需要查看配置内容,可在该用户下执行下面命令查看

crontab -l

 

2.使用 /etc/crontab 文件

/etc/crontab 文件只有使用 root 用户权限才可以配置,配置内容可以指定执行的用户权限。默认配置文件内容如下

 

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DISPLAY=:0.0

# m h dom mon dow usercommand
17 ** * *root    cd / && run-parts --report /etc/cron.hourly
5 9* * *roottest -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6* * 7roottest -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 61 * *roottest -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

添加定时任务时,可以直接修改crontab文件,但是一般做法是在/etc/cron.d/目录下新建配置文件,按照如下格式添加配置,当cron任务运行时,会自动加载/etc/cron.d/目录下的文件配置:

*     *     *     *    *    用户            命令
#分    时    日     月    周   执行任务的用户    执行的命令
#例:
*/5   *     *     *    *    root      ntpdate timeserver
#每5分钟向timeserver服务器对一次时(配置格式与crontab -e大致相同,只是多了用户权限配置)

配置完成之后保存退出即可。

 

3.使用定时任务目录

定时任务目录为 /etc 下的 cron.hourly、cron.daily、cron.monthly 和 cron.weekly 四个目录。这四个目录的执行命令默认写在了 /etc/crontab 文件里:

17 ** * *root    cd / && run-parts --report /etc/cron.hourly
#每小时的第17分钟以root用户身份执行cron.hourly/目录下的脚本文件
5 9* * *roottest -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
#每填9时05分以root身份执行cron.daily目录下脚本文件
47 6* * 7roottest -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
#每周日6时47分以root身份执行cron.weekly/目录下脚本文件(周日可以用0或者7表示)
52 61 * *roottest -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#每月1日6时52分以root用户身份执行cron.monthly/目录下的脚本文件

因此,需要简单配置每小时、每天、每周或每月执行一次的定时任务时,可以写好相关的脚本存放在对应定时任务目录即可。

 

4.定时任务服务

定时任务服务为 cron,系统默认会自启动。增加或者修改定时任务可以直接生效而不需要重启 cron 服务。当服务器维护需要控制 cron 服务时,使用下面的命令即可:

启动服务

sudo systemctl start cron

查看服务状态

systemctl status cron
greatwall@GW-121:~$ sudo systemctl start cron
greatwall@GW-121:~$ systemctl status cron
● cron.service - Regular background program processing daemon
  Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
  Active: active (running) since 一 2020-02-03 01:42:49 CST; 1 months 1 days ago
    Docs: man:cron(8)
Main PID: 1351 (cron)
   Tasks: 2
  Memory: 207.8M
     CPU: 8min 36.594s
  CGroup: /system.slice/cron.service
          ├─1351 /usr/sbin/cron -f
          └─8422 pmlogger -r -T 24h10m -m pmlogger_daily -P -l pmlogger.log -c /var/lib/pcp/config/pmlogger/config.default 20200305.00.10

3月 05 15:05:01 GW-121 CRON[27127]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
3月 05 15:05:01 GW-121 CRON[27126]: pam_unix(cron:session): session closed for user root
3月 05 15:15:01 GW-121 CRON[27134]: pam_unix(cron:session): session opened for user root by (uid=0)
3月 05 15:15:01 GW-121 CRON[27135]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
3月 05 15:15:01 GW-121 CRON[27134]: pam_unix(cron:session): session closed for user root
3月 05 15:17:01 GW-121 CRON[27140]: pam_unix(cron:session): session opened for user root by (uid=0)
3月 05 15:17:01 GW-121 CRON[27141]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
3月 05 15:17:01 GW-121 CRON[27140]: pam_unix(cron:session): session closed for user root
3月 05 15:23:15 GW-121 systemd[1]: Started Regular background program processing daemon.
3月 05 15:23:17 GW-121 systemd[1]: Started Regular background program processing daemon.
greatwall@GW-121:~$

停止服务

sudo systemctl stop cron
greatwall@GW-121:~$ sudo systemctl stop cron
greatwall@GW-121:~$ systemctl status cron
● cron.service - Regular background program processing daemon
  Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
  Active: inactive (dead) since 四 2020-03-05 15:24:06 CST; 1s ago
    Docs: man:cron(8)
Main PID: 1351 (code=killed, signal=TERM)
   Tasks: 1
  Memory: 207.8M
     CPU: 8min 36.594s
  CGroup: /system.slice/cron.service
          └─8422 pmlogger -r -T 24h10m -m pmlogger_daily -P -l pmlogger.log -c /var/lib/pcp/config/pmlogger/config.default 20200305.00.10

3月 05 15:15:01 GW-121 CRON[27134]: pam_unix(cron:session): session opened for user root by (uid=0)
3月 05 15:15:01 GW-121 CRON[27135]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
3月 05 15:15:01 GW-121 CRON[27134]: pam_unix(cron:session): session closed for user root
3月 05 15:17:01 GW-121 CRON[27140]: pam_unix(cron:session): session opened for user root by (uid=0)
3月 05 15:17:01 GW-121 CRON[27141]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
3月 05 15:17:01 GW-121 CRON[27140]: pam_unix(cron:session): session closed for user root
3月 05 15:23:15 GW-121 systemd[1]: Started Regular background program processing daemon.
3月 05 15:23:17 GW-121 systemd[1]: Started Regular background program processing daemon.
3月 05 15:24:06 GW-121 systemd[1]: Stopping Regular background program processing daemon...
3月 05 15:24:06 GW-121 systemd[1]: Stopped Regular background program processing daemon.
greatwall@GW-121:~$

设置服务开机自启动

sudo systemctl enable cron
greatwall@GW-121:~$ sudo systemctl enable cron
Synchronizing state of cron.service with SysV init with /lib/systemd/systemd-sysv-install...
Executing /lib/systemd/systemd-sysv-install enable cron
greatwall@GW-121:~$

关闭服务开机自启动

sudo systemctl disable cron
greatwall@GW-121:~$ sudo systemctl disable cron
Synchronizing state of cron.service with SysV init with /lib/systemd/systemd-sysv-install...
Executing /lib/systemd/systemd-sysv-install disable cron
insserv: warning: current start runlevel(s) (empty) of script `cron' overrides LSB defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (2 3 4 5) of script `cron' overrides LSB defaults (empty).
greatwall@GW-121:~$

 

作者:陈思宇

你可能感兴趣的:(系统运维)