可以grep | crontab销毁了所有工作?


21

我的同事跑了grep | crontab。之后,所有工作都消失了。看起来他正试图逃跑crontab -l

那么运行命令后发生了grep | crontab什么?谁能解释?

Answers:


33

crontab可以crontabroot从STDIN中读取的调用用户(或提到的用户)安装新的。这就是您的情况。

grep如果没有任何选项,则照常在STDERR上生成错误消息,并且您正在将STDOUT grep传送到STDIN crontab为空,因此您crontab将消失。


4
某些版本的crontab要求您将其-用作从标准输入中读取的文件名。我认为这是因为太多的人用这样的错误吹走了crontab。
Barmar

4

他是如何终止工作的?他输入的是Cc还是Cd?如果他键入Cd,则相当于运行,crontab < /dev/null并且您已用一个空的crontab文件替换了该用户的crontab文件。另一方面,如果您crontab用Cc 杀死,则crontab可能已被保留,但是您可以通过运行轻松地进行检查crontab -l

该程序所做的全部工作就是在中编辑crontab文件/var/spool/cron/,因此,如果您碰巧有文件系统的备份,则可以从那里还原用户的crontab文件。

更新

我没有看到grep没有参数,因此grep会出错并且确实crontab文件总是被吹走。


1
您不需要Cc或Cd,crontab将会消失
DarkHeart
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.