Мой коллега сбежал grep | crontab
. После этого все рабочие места исчезли. Похоже, он пытался бежать crontab -l
.
Так что же произошло после запуска команды grep | crontab
? Кто-нибудь может объяснить?
crontab
может установить новое crontab
для вызывающего пользователя (или упомянутого пользователя как root
) чтение из STDIN. Это то, что произошло в вашем случае.
grep
без какой-либо опции генерирует сообщение об ошибке на STDERR как обычно, и вы отправляете STDOUT из grep
на STDIN, из crontab
которого пусто, следовательно, ваш crontab
пропадет.
crontab
требуют использования в-
качестве имени файла для чтения из стандартного ввода. Я предполагаю, что это потому, что слишком много людей сдували свои кронтабы с такими ошибками.Как он прекратил работу? Он набрал Cc или Cd? Если он набрал Cd, то это эквивалентно
crontab < /dev/null
и вы заменили файл crontab пользователя на пустой. С другой стороны, если вы убьетеcrontab
с помощью Cc, то crontab мог бы быть сохранен, но вы можете легко это проверить, запустивcrontab -l
.Все, что делает эта программа, это редактирует файлы crontab
/var/spool/cron/
, поэтому, если у вас есть резервная копия файловой системы, вы можете просто восстановить файл crontab пользователя оттуда.Обновить
Я не видел, чтобы у grep не было аргументов, поэтому grep выдаст ошибку и файл crontab будет удален всегда.
источник