Ich habe ein Skript in cron.daily, das jeden Morgen zu einer bestimmten Zeit ausgeführt wird. Ich muss die Uhrzeit ändern, zu der es ausgeführt wird.
Wie ändere ich die Zeit, zu der cron.daily die Skripte ausführt?
Ich habe ein Skript in cron.daily, das jeden Morgen zu einer bestimmten Zeit ausgeführt wird. Ich muss die Uhrzeit ändern, zu der es ausgeführt wird.
Wie ändere ich die Zeit, zu der cron.daily die Skripte ausführt?
Antworten:
Bei Red Hat 5 oder älter wird dies in gesteuert /etc/crontab
.
Neuere Versionen verwenden /etc/anacrontab
. Standardmäßig werden cron.daily
Skripte um 4:02 Uhr ausgeführt. Durch Bearbeiten /etc/crontab
wird diese Zeit geändert.
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
Auf Debian / Ubuntu-Systemen wird dies ebenfalls gesteuert /etc/crontab
.
Beispielsweise; eine Ubuntu 12.04 Standardinstallation:
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
In beiden Fällen finden Sie hier weitere Informationen zur zu verwendenden Syntax: http://linux.die.net/man/5/crontab oder man 5 crontab
auf nahezu jedem Linux-System.
in RHEL / CentOS 6 und höher
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22
#period in days delay in minutes job-identifier command
1 5 cron.daily nice run-parts /etc/cron.daily
7 25 cron.weekly nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly
Unter openSUSE sieht die Crontab folgendermaßen aus:
SHELL=/bin/sh
PATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin
MAILTO=root
#
# check scripts in cron.hourly, cron.daily, cron.weekly, and cron.monthly
#
-*/15 * * * * root test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons >/dev/null 2>&1
Der run-crons
Befehl überprüft /var/spool/cron/lastrun
unter anderem die Zeitstempel der Dateien . Wenn die Zeit seit der letzten Ausführung abgelaufen ist, wird die Cron-Datei erneut ausgeführt.
Die Zeit kann durch Berühren der Datei beeinflusst werden. Zum Beispiel, um es auf 2012-11-17 03:15 zu setzen:
touch -t 201211140315 /var/spool/cron/lastrun/cron.daily
Wenn die Leitung nicht da wäre, würde dies nichts lösen.
Versuchen Sie herauszufinden, wo cron.daily erwähnt wird, mit
grep -R cron.daily /etc
Dann nimm es von dort.
Sie möchten zwei Dinge tun:
00 10 * * * /path/to/script
sudo systemctl restart cron.service
nachdem du dies geändert hast. Dies gilt fürsystemd
-basierte Systeme wie das moderne Debian und Ubuntu.