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.