задание крона, не запускающее скрипт удара

Я желаю создать резервные копии сервера Minecraft, которым я управляю. Я записал сценарий удара, который выполняет ftp wget резервное копирование файлов сервера к новой папке.

Вот то, что сценарий:

TIMESTAMP=$(/bin/date +%Y-%m-%d_%H:%M)

/bin/mkdir /disks/Media/MC\ Server\ Backups/backup/$TIMESTAMP -p
cd /disks/Media/MC\ Server\ Backups/backup/$TIMESTAMP
/usr/bin/wget -r ftp://$FTP_USER:$FTP_PASS@$FTP_ADDR// -l 0 -nH

Переменные являются деталями соединения FTP-сервера и опущены по очевидным причинам. Когда я запускаю скрипт на своем собственном, он работает безупречно. Моя проблема заставляет это работать заданием крона, таким образом, резервные копии являются автоматическими. От терминальной работы /, Я ввожу crontab -e.

Я использую gedit для добавления задания крона:

1 4 * * * /disks/Media/MC\ Server\ Backups/ftp-backup.sh

Таким образом, это должно работать в 4:01 каждый день, но это не делает. Проблема то, что сценарий сохранен на смонтированном внешнем диске NTFS? Я надеялся видеть, создало ли задание крона резервную папку где-то в другом месте, но я не вижу другой.

Я добавил #!/bin/sh к началу сценария. Я также выполнил chmod-x на самом сценарии. Я также попробовал два различных формата за запущение моего скрипта:

15 25 * * * /disks/Media/MC\ Server\ Backups/ftp-backup.sh &>/tmp/cronout.log

и

15 25 * * * /bin/sh /disks/Media/MC\ Server\ Backups/ftp-backup.sh &>/tmp/cronout.log

Последняя часть, как предполагается, регистрирует любые проблемы, все же эти файлы никогда не создаются вообще.

Я тестировал крон путем установки заданий, чтобы быть несколькими минутами в будущее.

При наблюдении, работает ли крон с этой командой: systemctl status cron, Я получаю следующий вывод:

● cron.service - Regular background program processing daemon
   Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
   Active: failed (Result: signal) since Sun 2019-12-22 12:20:27 EST; 2 weeks 3 days ago
     Docs: man:cron(8)
  Process: 1081 ExecStart=/usr/sbin/cron -f $EXTRA_OPTS (code=killed, signal=KILL)
 Main PID: 1081 (code=killed, signal=KILL)

Dec 22 11:24:38 jlcarveth-MS-7A72 cron[1081]: (CRON) INFO (Running @reboot jobs)
Dec 22 11:30:01 jlcarveth-MS-7A72 CRON[3975]: pam_unix(cron:session): session opened for user jlcarveth by (ui
Dec 22 11:30:01 jlcarveth-MS-7A72 CRON[3976]: (jlcarveth) CMD (/bin/bash /disks/Media/MC\ Server\ Backups/ftp-
Dec 22 12:11:44 jlcarveth-MS-7A72 CRON[3975]: (CRON) info (No MTA installed, discarding output)
Dec 22 12:11:44 jlcarveth-MS-7A72 CRON[3975]: pam_unix(cron:session): session closed for user jlcarveth
Dec 22 12:17:01 jlcarveth-MS-7A72 CRON[11533]: pam_unix(cron:session): session opened for user root by (uid=0)
Dec 22 12:17:01 jlcarveth-MS-7A72 CRON[11534]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Dec 22 12:17:01 jlcarveth-MS-7A72 CRON[11533]: pam_unix(cron:session): session closed for user root
Dec 22 12:20:27 jlcarveth-MS-7A72 systemd[1]: cron.service: Main process exited, code=killed, status=9/KILL
Dec 22 12:20:27 jlcarveth-MS-7A72 systemd[1]: cron.service: Failed with result 'signal'.

Из того, что я могу сказать, крон не работает правильно, но IDK, как исправить это.

Не уверенный, что я изменил, но следующее, кажется, работает: 50 16 * * * /disks/Media/MC\ Server\ Backups/ftp-backup.sh

1
задан 9 January 2020 в 00:49

1 ответ

Несколько вещей.

  1. &>/tmp/cronout.log только зарегистрирует stdout, не stderr. Амперсанд, вероятно, повреждает это также. Вы хотите 2>&1 >/tmp/cronout.log перенаправить stderr в stdout и stdout в файл.

  2. Ваш сценарий не имеет никакой хижины. Первая строка должна читать #!/bin/bash

  3. Действительно ли файл является исполняемым файлом? chmod +x /disks/Media/MC\ Server\ Backups/ftp-backup.sh

0
ответ дан 19 January 2020 в 09:18

Другие вопросы по тегам:

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