crontab 返回使用错误:仅允许一个操作

crontab 返回使用错误:仅允许一个操作

我有两台运行 Ubuntu 18.04 LTS 的 PC。它们是基于同一个 Linux 基础映像创建的。最近我发现在其中一台电脑上,我无法使用 crontab 查看或编辑单个用户的 cron 表。

任何用户(包括 root 用户)都会收到此错误:

$ crontab -l
crontab: usage error: only one operation permitted
usage:  crontab [-u user] file
        crontab [ -u user ] [ -i ] { -e | -l | -r }
                (default operation is replace, per 1003.2)
        -e      (edit user's crontab)
        -l      (list user's crontab)
        -r      (delete user's crontab)
        -i      (prompt before deleting user's crontab)

我起初以为是正在运行的进程可能已锁定 cron,但服务器完全重启后问题仍然存在。

在线研究仅表明一些管理员选择重新编译 crontab 以消除“删除”标志。但这里的情况并非如此。此 crontab 命令随操作系统一起提供,与工作服务器上的命令相同。

/var/log/syslog或中也没有消息/var/log/cron.log显示失败的原因。crontab -ecrontab -l两者都返回上述错误。

这是工作服务器和问题服务器的 /usr/bin/crontab。日期和大小相同。

-rwxr-sr-x 1 root crontab 39352 Nov 16  2017 /usr/bin/crontab
-rwxr-sr-x 1 root crontab 39352 Nov 16  2017 /usr/bin/crontab

$ diff -s crontab.serverA crontab.serverB
Files crontab.serverA and crontab.serverB are identical

最后,两个服务器上的/var/spool/cron路径和文件的权限和所有权是相同的。

我可以向选定用户的 /etc/crontab 文件添加任何条目,但我只是想了解为什么会出现此错误。是否有某种遗留的锁定文件可能导致此问题?

答案1

感谢 @steeldriver 关于查看别名设置的评论,我发现有人在 /etc/profile 中添加了此行:

alias crontab='crontab -l'

我们的一些操作员喜欢使用快捷方式(例如别名 df='df -h'),这对我来说绝对是一个新问题,因为我们以前从未使用过该别名。果然,删除别名解决了这个问题。我还确认,如果您重复两次相同的标志,就会触发错误消息和使用情况显示。

$ crontab -l -l
crontab: usage error: only one operation permitted
usage:  crontab [-u user] file
        crontab [ -u user ] [ -i ] { -e | -l | -r }
                (default operation is replace, per 1003.2)
        -e      (edit user's crontab)
        -l      (list user's crontab)
        -r      (delete user's crontab)
        -i      (prompt before deleting user's crontab)

谢谢您就去哪里寻找这种奇怪行为提供的建议。

相关内容