Comment tout désactiver dans crontab -l?


71

Je veux juste tout mettre en pause. N'exécutez rien répertorié sur crontab -l.

Réponses:


64

crontab -epuis commentez chaque ligne que vous ne voulez pas utiliser #.


135

Tout d’abord, sauvegardez la crontab:

crontab -l > my_cron_backup.txt

Ensuite, vous pouvez le vider:

crontab -r

Restaurer:

crontab my_cron_backup.txt
crontab -l

2
Cela est particulièrement utile quand /tmpest corrompu (et si votre crontab utilise mktempdans /tmp.
Kevin Lee

1
+1 Enfin, voici ce qui a fonctionné pour moi. Merci
Pavan

@alex Cela devrait être la réponse acceptée
Luis Ferrao le

crontab -rest ce que je cherchais. Merci !
forzagreen

65

Avez-vous un accès root? Juste une pause cron

sudo /etc/init.d/crond stop

Puis redémarrez quand vous êtes prêt

sudo /etc/init.d/crond start

5
En supposant que vous souhaitiez arrêter crontab pour tous les utilisateurs, y compris root. La réponse sélectionnée et la réponse de kubanskamac le feraient uniquement pour l'utilisateur actuel (souhaité?).
Kevin K

notre service avait été arrêté. Cela nous a orienté dans la bonne direction pour vérifier si Crond était en cours d'exécution et redémarrer.
Paul

4
Si vous êtes sur Ubuntu, vous pouvez utilisersudo service cron stop
Joel

1
Sur Debian, c'est /etc/init.d/cron stop.
Faheem Mitha le

2
@Faheem sur Debian aujourd'hui, c'est aussi service cron stop.
Stephen Kitt

10

Si vous utilisez vi comme éditeur, entrez simplement :%s/^/#/en mode commande. Dans toutes les lignes (%), il substitue (s ///) le début de la ligne (^) par un dièse (#).


Si vous n'utilisez pas vi comme éditeur par défaut, vous pouvez "forcer" l'utilisation de vi comme EDITOR=vi; crontab -e, et vous pouvez utiliser l'astuce ci-dessus.
Betlista

2
Pour décommenter, la commande est:%s/^#//
NP01

3

N'était pas heureux avec les options ci-dessus car ils n'étaient pas un paquebots.

Pour désactiver crontab -l | perl -nle 's/^([^#])/# $1/;print' | crontab

Autoriser crontab -l | perl -nle 's/^#\s*([0-9*])/$1/;print' | crontab

exemple d'utilisation (édité pour montrer qu'il ne désactive pas les commentaires)

$ 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

Ceci a été testé sur RHEL et AIX et devrait fonctionner sans qu'il soit nécessaire d'installer quoi que ce soit


1
Vous pouvez également rechercher des détails spécifiques dans le fichier cronjob crontab -l | perl -nle '/ ^ # \ s * ([0-1 *]) / $ 1 /; print if /.+mytexttofind.+/'
Jason

Pourriez-vous s'il vous plaît expliquer pourquoi les commentaires ne sont pas affectés? Quel est le motif que vous utilisez pour les détecter?
Sopalajo de Arrierez

Hm, sous Debian Jessie je reçois l'erreur suivante: crontab: usage error: file name must be specified for replace. Il semble que vous deviez spécifier un fichier (?) Lorsque vous utilisez crontabsans aucun paramètre (ce qui est replacepar défaut).
Fritzmg

2

Dans mes tests limités, définir le shell sur / bin / false fonctionne. Vous verrez toujours l' /opt/job.shexécution dans vos journaux, mais ce sera un noop:

SHELL=/bin/false

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

1

Dans n'importe quelle version d'Unix / Linux que je connaisse:

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

Cette:

  • 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 un one-liner, duh :)

1

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

Pour désactiver:

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

Autoriser:

crontab -l | cut -c 3- | crontab

Le seul problème avec la solution fournie par segaps, est que cela décommentera les travaux déjà commentés par l'utilisateur.


0

Pour ce faire, en utilisant nano comme éditeur:

sudo env EDITOR=nano crontab -e

puis commentez chaque ligne que vous ne voulez pas utiliser avec #

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.