使用crontab定时执行周期任务

我们可以使用crontab -e命令编辑属于当前登录用户$username的周期性任务列表。该命令的执行实际上是打开了/var/spool/cron/crontabs/$username文件以供我们编辑。其中,每一行代表一条任务。每行的前五个域用于指定任务执行的时刻与周期,即分钟、小时、每月第几天、月、每周第几天。

# Meaning of each column:
# field allowed values
# ----- --------------
# minute 0–59
# hour 0–23
# day of month 1–31
# month 1–12 (or names, see below)
# day of week 0–7 (0 or 7 is Sun, or use names)

例如,如下的配置将于每日零点自动执行脚本程序user_script。

# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.oAYqhI/crontab installed on Wed May 5 16:36:38 2021)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
#
0 0 * * * . /home/$username/.cron_env; /usr/local/bin/user_script

需要注意的是:

  1. cron守护进程起动时用户配置文件~/.bashrc尚未加载,所以一些自定义的环境变量并不存在。为此,需要将这些环境变量的设置提取出来另存到文件/home/$username/.cron_env中,并在运行周期任务前加载。
  2. 加载/home/$username/.cron_env时,source命令并不能被cron识别,所以只能使用命令.
  3. cron不能识别路径~/,所以如果用到的话,必须要使用全称/home/$username
posted @ 2021-05-07 10:54  皮波迪先生  阅读(226)  评论(0编辑  收藏  举报