6 个 Linux Crontab 命令行选项示例
Crontab 命令管理 cron 守护程序用来执行 cron 作业的 cron 表。本文解释了 crontab 命令的各种命令行选项。
1. 使用选项 -u 调整其他用户 Crontab
-u 代表用户。这后面应该是系统中的有效用户名。-u 选项本身没有任何作用。它应该与其他选项结合使用。实际上,它可以与任何其他 crontab 命令行选项结合使用。
如果不指定 -u username,则将在当前用户上执行 crontab 命令。例如,以下所有 crontab 命令都将在当前登录的用户上执行。
crontab -l
crontab -e
crontab -r
..
如果您指定 -u username,crontab 命令将在给定的用户名上执行。例如,以下所有 crontab 命令都将在 oracle 用户上执行。
crontab -u oracle -l
crontab -u oracle -e
crontab -u oracle -r
..
2. 使用选项 -l 显示 Cron 表
-l 代表列表。这将显示当前用户的 crontab。由于我以 root 身份登录,这将显示 root 用户的 cron 作业。
# crontab -l
53 00 * * 7 /bin/sh /home/root/bin/server-backup
要显示其他用户的 cron 作业,请将 -l 与 -u 选项结合使用。
# crontab -u oracle -l
01 00 * * * /bin/sh /home/oracle/bin/rman-backup
在15个crontab的例子介绍如何使用cron作业条目的实用方法。
3. 使用选项 -e 编辑 Cron 表
-e 代表编辑。这允许您编辑当前用户的 crontab。由于我以 root 身份登录,这将在 Vim 编辑器中自动打开 root 的 cron 作业,并允许我对其进行编辑。
# crontab -e
53 00 * * 7 /bin/sh /home/root/bin/server-backup
~
~
/tmp/crontab.7dgqju
正如您从上面注意到的,/tmp/crontab.7dgqju 是由 crontab 自动创建的临时文件,您可以在其中编辑您的 cron 作业。
当您保存编辑并退出 Vim 编辑器时,它将显示以下消息之一,具体取决于您是否进行了任何更改。
# crontab -e
crontab: no changes made to crontab
# crontab -e
crontab: installing new crontab
注意:crontab 用于打开 cron 作业进行编辑的编辑器取决于 VISUAL 或 EDITOR 环境变量。默认情况下,它将在 Linux 环境中使用 Vim 编辑器。但是您可以使用 VISUAL/EDITOR 环境变量更改它。
要编辑其他用户的 cron 作业,请将 -e 与 -u 选项结合使用。
# crontab -u oracle -e
crontab: installing new crontab
要了解 crontab 条目本身的含义,请参阅如何每 5 分钟(或几小时、几天或几个月)运行一次 Cron 。
4. 从文件加载 crontab
除了手动编辑 crontab 以添加新作业,您还可以从文件上传所有 cron 作业。当您必须维护许多具有相同 cron 作业条目的服务器时,这很有用。
在以下示例中,所有 cron 作业都在 /home/root/mycronjobs.txt 文件中。
# cat /home/root/mycronjobs.txt
53 00 * * 7 /bin/sh /home/root/bin/server-backup
01 00 * * * /bin/sh /home/root/bin/check-user-quota
要将 mycronjobs.txt 作业上传到当前用户 crontab,请执行以下操作:
# crontab /home/root/mycronjobs.txt
验证以确保 cron 作业已成功上传。
# crontab -l
53 00 * * 7 /bin/sh /home/root/bin/server-backup
01 00 * * * /bin/sh /home/root/bin/check-user-quota
注意:使用此上传方法时要小心,因为这会在上传新的 cron 作业条目之前清除所有当前的 cron 作业条目。
要将 cron 作业从文件上传到另一个用户,请将其与 -u 选项结合使用。
# crontab -u oracle /home/oracle/mycronjobs.txt
5. 使用选项 -s 添加 SELinux Security
-s 代表 SELinux。这会将 MLS_LEVEL 变量添加到包含当前 SELinux 安全上下文的 crontab。
要使用 -s 选项,您应该从文件上传 cron 作业。
# cat /home/root/mycronjobs.txt
53 00 * * 7 /bin/sh /home/root/bin/server-backup
01 00 * * * /bin/sh /home/root/bin/check-user-quota
# crontab -s /home/root/mycronjobs/my.txt
SELINUX_ROLE_TYPE=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
53 00 * * 7 /bin/sh /home/root/bin/server-backup
01 00 * * * /bin/sh /home/root/bin/check-user-quota
根据您的系统,上面将添加 SELUNUX_ROLE_TYPE 变量或包含 SELinux 安全上下文字符串的 MLS_LEVEL 变量。如果您的环境中没有使用 SELinux,请不要担心此选项的作用。SELinux 是一个单独的讨论主题,我们可能会在以后的文章中详细介绍。
6. 使用选项 -r 删除所有 Cron 作业
-r 代表删除。这将删除当前用户的所有 cron 作业条目,如下所示。
# crontab -l
53 00 * * 7 /bin/sh /home/root/bin/server-backup
01 00 * * * /bin/sh /home/root/bin/check-user-quota
# crontab -r
# crontab -l
no crontab for root
-i 代表交互模式。将 -i 与 -r 结合使用会在删除所有 crontab 条目之前要求您确认。
# crontab -ir
crontab: really delete root's crontab? n
要删除其他用户的 cron 作业,请将 -r 与 -u 选项结合使用。
# crontab -u oracle -l
01 00 * * * /bin/sh /home/oracle/bin/rman-backup
# crontab -u oracle -r
# crontab -u oracle -l
no crontab for oracle
- 点赞
- 收藏
- 关注作者
评论(0)