Как отключить все в crontab-l?

Вы пытались удалить локальный профиль этой учетной записи?

проверьте на GPO, который может ограничить "вход в систему как пакет" некоторым группам. Это трудно решить, потому что при создании задачи, она работает, но когда почтамт применяется снова, он прекращает работать.

Какой-либо контрольный отказ в журнале событий безопасности?

71
задан 21 June 2014 в 04:46
10 ответов

crontab -e затем прокомментируйте каждую строку, с которой Вы не хотите работать #.

64
ответ дан 28 November 2019 в 19:28

Во-первых, создайте резервную копию crontab:

crontab -l > my_cron_backup.txt

Затем можно освободить его:

crontab -r

Восстановить:

crontab my_cron_backup.txt
crontab -l
136
ответ дан 28 November 2019 в 19:28

Если Вы используете vi в качестве редактора, то просто входят :%s/^/#/ в командном режиме. Во всех строках (%) это заменяет (s///) начинанием строки (^) с хешем (#).

10
ответ дан 28 November 2019 в 19:28

У Вас есть корневой доступ? Просто крон паузы

sudo /etc/init.d/crond stop

Затем перезапустите его, когда Вы будете готовы

sudo /etc/init.d/crond start
66
ответ дан 28 November 2019 в 19:28
  • 1
    Это предполагает, что Вы хотите остановить crontab для всех пользователей включая корень. Выбранный ответ и kubanskamac' s ответ сделал бы это для просто тока (желаемый?) пользователь. –  Kevin K 15 December 2009 в 02:20

В моем ограниченном тестировании установка оболочки на / bin / false работает. Вы по-прежнему будете видеть выполнение /opt/job.sh в ваших журналах, но это будет noop:

SHELL=/bin/false

*/1 * * * *    root  /some/job.sh
2
ответ дан 28 November 2019 в 19:28

был недоволен вышеперечисленными вариантами, так как они не были одним лайнером.

Чтобы отключить crontab -l | perl -nle 's/^([^#])/# $1/;print' | crontab

Чтобы включить crontab -l | perl -nle 's/^#\s*([0-9*])/$1/; print' | crontab

пример использования ( отредактирован, чтобы показать, что комментарии не отключены)

$ crontab -l
# Comment
0 0 * * 0 /opt/something.sh

$ crontab -l|perl -nle 's/^([^#])/# $1/;print'|crontab
$ crontab -l
# Comment
# 0 0 * * 0 /opt/something.sh

$ crontab -l|perl -nle 's/^#\s*([0-9*])/$1/;print'|crontab
$ crontab -l
# Comment
0 0 * * 0 /opt/something.sh

Проверил это на RHEL и AIX, и должен работать без установки чего-либо

.
3
ответ дан 28 November 2019 в 19:28

В любом известном мне варианте Unix / Linux:

mv /var/spool/cron  /var/spool/cron_is_disabled

Это:

  • отключает crontab всех пользователей
  • , но не система / etc / crontab (/etc/cron.daily и т. д.)
  • сохраняется после перезагрузки
  • является однострочным, да:)
1
ответ дан 28 November 2019 в 19:28

Я получил эту идею из ответа, предоставленного @segaps

Чтобы отключить:

crontab -l | awk '{print "# "$1}' | crontab

Чтобы включить:

crontab -l | cut -c 3- | crontab

Единственная проблема с решением, предоставляемым segaps, заключается в том, что оно будет раскомментируйте вакансии, которые уже прокомментированы пользователем.

1
ответ дан 28 November 2019 в 19:28

Для этого, используя nano в качестве редактора:

sudo env EDITOR=nano crontab -e

затем закомментируйте каждую строку, которую вы не хотите запускать, с помощью #

0
ответ дан 28 November 2019 в 19:28

Вы можете использовать следующее, например:

crondisable
cronenable

crondisable some_other_user
...

Код zsh (введите свой .zshrc ):

ecerr () {
print -r -- "$@" >&2
}
crondisable() {
        local user="${1:-$(whoami)}"
        local cronpath="/tmp/$user.cron.tmp"
        test -e "$cronpath" && {
        ecerr "There is already a disabled crontab at $cronpath. Remove that manually if you want to proceed."
        return 1
        }
        crontab -l -u $user > "$cronpath"
        crontab -r -u $user
}
cronenable() {
        local user="${1:-$(whoami)}"
        local cronpath="/tmp/$user.cron.tmp"
        test -e "$cronpath" || {
        ecerr "No disabled cron at $cronpath"
        return 1
        }
        crontab -u $user "$cronpath"
        mv "$cronpath" "${cronpath}.bak"
}
0
ответ дан 15 April 2020 в 16:47

Теги

Похожие вопросы