106 votes

Comment tout désactiver dans crontab -l ?

Je veux juste mettre tout en pause. N'exécutez rien de ce qui est listé sur crontab -l .

3voto

alexis Points 301

Dans mes tests limités, la définition de la Shell à /bin/false fonctionne. Vous verrez toujours /opt/job.sh s'exécutant dans vos journaux, mais ce sera un noop :

SHELL=/bin/false

*/1 * * * *    root  /some/job.sh

2voto

Sarvsav Sharma Points 11

J'ai eu l'idée de la réponse fournie par @segaps

Pour le désactiver :

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

Pour l'activer :

crontab -l | cut -c 3- | crontab

Le seul problème avec la solution fournie par segaps, est qu'elle va décommenter les travaux qui sont déjà commentés par l'utilisateur.

1voto

kubanczyk Points 13302

Dans toutes les versions d'Unix/Linux que je connais :

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

Ceci :

  • désactive les crontabs de tous les utilisateurs
  • mais pas le système /etc/crontab (/etc/cron.daily. etc.)
  • persiste après un redémarrage
  • est une phrase unique, duh :)

0voto

HappyFace Points 111

Vous pouvez utiliser ce qui suit comme suit :

crondisable
cronenable

crondisable some_other_user
...

Le site zsh (mettez dans votre .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"
}

-1voto

Brian Mitchell Points 1881

Pour ce faire, utilisez nano comme éditeur :

sudo env EDITOR=nano crontab -e

puis commentez chaque ligne que vous ne voulez pas exécuter avec #.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X