Vraag Hoe alles in crontab uit te schakelen -l?


Ik wil gewoon alles pauzeren. Voer niets uit dat op de lijst staat crontab -l.


52
2017-12-14 22:34


oorsprong




antwoorden:


crontab -e vervolgens commentaar geven op elke regel die u niet wilt gebruiken #.


50
2017-12-14 22:39





Maak eerst een back-up van de crontab:

crontab -l > my_cron_backup.txt

Dan kun je het legen:

crontab -r

Herstellen:

crontab my_cron_backup.txt
crontab -l

104
2017-12-14 22:41



Dit is vooral handig wanneer /tmp is beschadigd (en als je crontab -e gebruikt mktemp in /tmp. - Kevin Lee
+1 Eindelijk, dit is wat voor mij werkte. Dank je - Pavan
@alex Dit zou het geaccepteerde antwoord moeten zijn - Luis Ferrao


Heb je root-toegang? Pauzeer gewoon cron

sudo /etc/init.d/crond stop

Start hem vervolgens opnieuw op wanneer u klaar bent

sudo /etc/init.d/crond start

57
2017-12-14 22:46



Dat is ervan uitgaande dat je crontab wilt stoppen voor alle gebruikers inclusief root. Het geselecteerde antwoord en het antwoord van kubanskamac doen het alleen voor de huidige (gewenste?) Gebruiker. - Kevin K
onze crondienst was gestopt. Dit wees ons in goede richting om te controleren of crond draaide, en herstart. - Paul
Als je op Ubuntu zit, kun je gebruiken sudo service cron stop - Joel
Op Debian is dit /etc/init.d/cron stop. - Faheem Mitha
@Faheem op Debian tegenwoordig is het ook service cron stop. - Stephen Kitt


Als je vi als editor gebruikt, voer dan gewoon in :%s/^/#/ in de commandomodus. In alle regels (%) vervangt deze (s ///) de begin van regel (^) door een hash (#).


10
2017-12-15 10:46



Als u vi niet als standaardeditor gebruikt, kunt u het gebruik van vi-like "forceren" EDITOR=vi; crontab -een dan kun je de bovenstaande truc gebruiken. - Betlista
Om te uncomment, is het commando :%s/^#// - NP01


Was niet blij met de bovenstaande opties omdat ze niet één lijn waren.

Uitschakelen  crontab -l | perl -nle 's/^([^#])/# $1/;print' | crontab

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

gebruiksvoorbeeld (bewerkt om te laten zien dat het reacties niet uitschakelt)

$ 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

Getest op RHEL en AIX, en zou uit de doos moeten werken zonder dat er iets geïnstalleerd hoeft te worden


3
2017-09-12 10:31



Kan ook op zoek gaan naar specifieke details in de cronjob crontab -l | perl -nle's / ^ # \ s * ([0-1 *]) / $ 1 /; print als /.+mytexttofind.+/ ' - Jason
Kunt u uitleggen waarom opmerkingen niet worden beïnvloed? Welk patroon gebruik je om ze te detecteren? - Sopalajo de Arrierez


In mijn beperkte testen, de shell instellen op / bin / false werkt. Je zult het nog steeds zien /opt/job.sh uitvoeren in uw logs, maar het zal een ezel zijn:

SHELL=/bin/false

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

2
2017-10-13 21:23





In elke smaak van Unix / Linux die ik ken:

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

Deze:

  • schakelt crontabs van alle gebruikers uit
  • maar niet systeem / etc / crontab (/etc/cron.daily. etc.)
  • blijft bestaan ​​tijdens een herstart
  • is een one-liner, duh :)

1
2017-11-05 17:12





Ik kreeg het idee uit het antwoord van @segaps

Uitschakelen:

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

In staat te stellen:

crontab -l | cut -c 3- | crontab

Het enige probleem met de oplossing geboden door segaps, is dat het de opdrachten, die al door de gebruiker zijn becommentarieerd, ongedaan zal maken.


0
2018-06-29 13:49