Ubuntu Server Cron Jobs не работают [duplicate]

На этот вопрос уже есть ответ здесь:

Я собираюсь взорваться: я не могу выяснить, почему мои задания в файле crontab -e любого пользователя не выполняются. Ни один из них не делает, поэтому проблема «последнее задание cron не выполняется» неприменима. Также я проверил эту ветку и не нашел никаких ошибок. Я даже избежал знаков процента.

Вот мой файл crontab -e при запуске под пользователем root:

# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# Minute Stunde TagIMonat Monat TagIWoche Kommando
# m h  dom mon dow   command
50 3 * */2 * /usr/bin/openssl pkcs12 -export -out /home/user/export.pfx -inkey /etc/letsencrypt/live/domain/privkey.pem -in /etc/letsencrypt/live/domain/chain.pem -password pass: blabla > /var/log/cron.log
51 3 * */2 * /usr/bin/sshpass -p xxx scp /home/user/export.pfx root@255.255.255.255:/path/to/file/> /var/log/cron.log
0 0 */5 * * /usr/bin/rsync -avx /var/www/nextcloud/apps /nextcloud/backup/path/nextcloud-apps_`date +"\%Y\%m\%d"`/ > /var/log/cron.log
0 0 */5 * * /usr/bin/rsync -avx /var/www/nextcloud/config/config.php /nextcloud/backup/path/nextcloud-config_`date +"\%Y\%m\%d"`/ > /var/log/cron.log
0 0 * * * /usr/bin/mysqldump --single-transaction -h localhost -u user -pPassword db > /nextcloud/backup/path/nextcloud-sqlbkp_`date + "\%Y\%m\%d"`.sql > /var/log/cron.log

Может быть, кто-нибудь поможет мне с моей проблемой.

Спасибо

-1
задан 29 April 2019 в 01:47
1 ответ

О боже:)

На первых порах вам не следует вставлять такие длинные и сложные одиночные строки напрямую в cron. Вместо этого создайте сценарии bash для всех этих команд.

т.е. вы можете заменить:

0 0 */5 * * /usr/bin/rsync -avx /var/www/nextcloud/apps /nextcloud/backup/path/nextcloud-apps_`date +"\%Y\%m\%d"`/ > /var/log/cron.log
0 0 */5 * * /usr/bin/rsync -avx /var/www/nextcloud/config/config.php /nextcloud/backup/path/nextcloud-config_`date +"\%Y\%m\%d"`/ > /var/log/cron.log

на

0 0 */5 * * /root/bin/rsync_cronjobs.sh > /var/log/cron.log

и переместить свои команды в сценарий bash, то есть /root/bin/rsync_cronjobs.sh :

#!/bin/bash

DATE=`date +%Y%m%d`

/usr/bin/rsync -avx /var/www/nextcloud/apps /nextcloud/backup/path/nextcloud-apps_${DATE}/
/usr/bin/rsync -avx /var/www/nextcloud/config/config.php /nextcloud/backup/path/nextcloud-config_${DATE}`/

выглядит чище, верно?

Также убедитесь, что вы понять, как часто выполняются эти cronjobs. Вы можете проверить их, используя cronwtf . В целях безопасности никогда не вставляйте в такие инструменты ничего личного (например, пароли).

1
ответ дан 5 December 2019 в 19:39

Теги

Похожие вопросы