怎样在Linux上查看或列出cron作业

cron名称来自希腊语Chronos。 计时用于时间。这是一个守护程序,可让Linux系统在指定的时间间隔自动执行命令或脚本。

本教程显示了一些选项,用于列出Linux系统上用户的所有计划的cron作业。

怎样列出当前用户的Cron作业

默认的crontab命令适用于当前登录的用户。您可以列出当前用户的所有计划的cron作业,然后执行以下操作:

crontab –l 

输出:

所有用户cron作业通常位于下面。 / var /池/ cron / crontabs 目录。为每个命名的用户帐户创建一个单独的文件。

列出其他用户的cron工作

具有root或sudo特权的用户还可以查看其他用户的计划cron作业。 在-u之后使用用户名列出属于特定用户的所有作业。

例如:

sudo crontab –u username –l 

将用户名替换为显示cron作业的实际用户名。

列出按系统运行的cron作业

root用户可以访问和修改操作系统的crontab。您可以通过以root或sudo特权帐户运行以下命令来查看系统的cron作业。

less /etc/crontab 

输出:

# /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

# 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
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

怎样列出每小时的Cron工作

您可以查看/ettc/cron.hourly目录以查找计划每小时运行的所有cron作业。

ls -la /etc/cron.hourly 

输出:

total 20
drwxr-xr-x   2 root root  4096 Apr 23  2020 .
drwxr-xr-x 142 root root 12288 Jan 19 15:21 ..
-rw-r--r--   1 root root   102 Feb 14  2020 .placeholder

上面的输出显示没有每小时要运行的cron作业计划。每个目录都显示一个文件.placeholder,以防止程序包管理器意外删除该目录。如果目录中没有其他文件。

怎样列出每日Cron工作

同样,您可以列出计划每天运行的所有作业。大多数应用程序作业位于此目录中。

ls -la /etc/cron.daily 

输出:

total 72
drwxr-xr-x   2 root root  4096 Dec 28 15:28 .
drwxr-xr-x 142 root root 12288 Jan 19 15:21 ..
-rwxr-xr-x   1 root root   311 Jul 16  2019 0anacron
-rwxr-xr-x   1 root root   539 Apr 13  2020 apache2
-rwxr-xr-x   1 root root   376 Dec  5  2019 apport
-rwxr-xr-x   1 root root  1478 Apr  9  2020 apt-compat
-rwxr-xr-x   1 root root   355 Dec 29  2017 bsdmainutils
-rwxr-xr-x   1 root root   384 Nov 19  2019 cracklib-runtime
-rwxr-xr-x   1 root root  1187 Sep  6  2019 dpkg
-rwxr-xr-x   1 root root   377 Jan 21  2019 logrotate
-rwxr-xr-x   1 root root  1123 Feb 25  2020 man-db
-rw-r--r--   1 root root   102 Feb 14  2020 .placeholder
-rwxr-xr-x   1 root root  4574 Jul 18  2019 popularity-contest
-rwxr-xr-x   1 root root   383 Jan  6  2020 samba
-rwxr-xr-x   1 root root   214 Apr  2  2020 update-notifier-common

怎样列出每周的Cron工作

在/etc/cron.weekly目录中安排了每周cron作业。

ls -la /etc/cron.weekly 

输出:

total 32
drwxr-xr-x   2 root root  4096 Apr 23  2020 .
drwxr-xr-x 142 root root 12288 Jan 19 15:21 ..
-rwxr-xr-x   1 root root   312 Jul 16  2019 0anacron
-rwxr-xr-x   1 root root   813 Feb 25  2020 man-db
-rw-r--r--   1 root root   102 Feb 14  2020 .placeholder
-rwxr-xr-x   1 root root   211 Apr  2  2020 update-notifier-common

怎样列出MontlyCron职位

所有每月的cron作业都计划在/etc/cron.monthly目录中。

ls -la /etc/cron.monthly 

输出:

total 24
drwxr-xr-x   2 root root  4096 Apr 23  2020 .
drwxr-xr-x 142 root root 12288 Jan 19 15:21 ..
-rwxr-xr-x   1 root root   313 Jul 16  2019 0anacron
-rw-r--r--   1 root root   102 Feb 14  2020 .placeholder

怎样查看特定于应用程序的Cron作业

该应用的五月计划了一项cron作业,以进行正常工作。这些工作属于每小时,每天,每周或每月的cron工作。

例如,Apache Web服务器在/etc/cron.daily下创建了一个cron作业文件。这意味着该作业每天运行。您可以通过访问文件内容来检查cron作业的内容,如下所示。

cat /etc/cron.daily/apache2 

输出:

#!/bin/sh

# run htcacheclean if set to 'cron' mode

set -e
set -u

type htcacheclean > /dev/null 2>&1 || exit 0
[ -e /etc/default/apache-htcacheclean ] || exit 0


# edit /etc/default/apache-htcacheclean to change this
HTCACHECLEAN_MODE=daemon
HTCACHECLEAN_RUN=auto
HTCACHECLEAN_SIZE=300M
HTCACHECLEAN_PATH=/var/cache/apache2/mod_cache_disk
HTCACHECLEAN_OPTIONS=""

. /etc/default/apache-htcacheclean

[ "$HTCACHECLEAN_MODE" = "cron" ] || exit 0

htcacheclean ${HTCACHECLEAN_OPTIONS}    
                -p${HTCACHECLEAN_PATH}  
                -l${HTCACHECLEAN_SIZE}

结论

在本教程中,您学习了怎样在Linux系统上查看,列出或查看cron作业。此外,我们发现了有关每小时,每天,每周或每月运行的cron作业的详细信息。

相关阅读:

Posted in: LinuxTags: