Я добавил файл grive.sh
кому: /etc/cron.daily
но команда, кажется, не работает. Я также скопировал его в /etc/cron.hourly
но не было никакого изменения в моем каталоге Google Drive только. Файл имеет только три строки:
#! /bin/sh
cd /media/james/Seagate Expansion Drive/GD
grive
Полномочия только для чтения, таким образом, я обновлю их.
Я использовал /etc/cron.hourly# chmod u+rwx grive.sh
, но затем когда я проверяю полномочия на файл в Наутилусе, они неизменны — я не знаю почему.
Я могу работать grive
вручную от терминала и файлов синхронизируют локально и онлайн.
root@james-Streacom:/etc/cron.hourly# grep CRON /var/log/syslog
Feb 1 09:17:02 james-Streacom CRON[8696]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Feb 1 10:17:01 james-Streacom CRON[10958]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Feb 1 11:17:01 james-Streacom CRON[12897]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Feb 1 12:17:01 james-Streacom CRON[15307]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Feb 1 13:17:01 james-Streacom CRON[17043]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Feb 1 14:17:01 james-Streacom CRON[17354]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Feb 1 15:17:01 james-Streacom CRON[17705]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
root@james-Streacom:/etc/cron.hourly# cd / && run-parts --report /etc/cron.hourly
root@james-Streacom:/# bash -c "cd / && run-parts --report /etc/cron.hourly"
root@james-Streacom:/#
Обратите внимание, что это может быть дубликатом задания крона, не работает, когда он вставляется в '/etc/cron.hourly /' но работа при определении в 'crontab-e' я просто прохожу те шаги.
Я добавил echo test >/tmp/foobar.tmp
к последней строке сценария.
root@james-Streacom:/etc/cron.hourly# grep 'cron\.hourly' /etc/crontab
17 * * * * root cd / && run-parts --report /etc/cron.hourly
/temp/foobar.tmp
не существует.
Я пытался на самом деле работать # cd /media/james/Seagate Expansion Drive/GD
, и получил ошибку -su: cd: too many arguments
. Я затем изменил строку CD в сценарии к cd /media/james/"Seagate Expansion Drive"/GD
.
$ echo test >/tmp/foobar.tmp
действительно создает файл с тестом в нем. # echo test2 >/tmp/foobar.tmp
перезаписи тестируют с test2.
Я не совсем понимаю ваш вопрос, хотя по моему опыту некоторые команды не работают должным образом, когда вы добавляете их в скрипт и вставляете cronjob.
Я бы начал с добавления его в новый файл в /etc/cron.d/test
следующим образом (я буду настраивать его каждые 5 минут, чтобы получать журналы для тестирования):
# m h dom mon dow user command
*/5 * * * * root [DIR_TO_SCRIPT]/grive.sh >> /var/log/grivesh.log 2>&1
Пожалуйста, смотрите stdout в /var/log/grivesh.log
, как только вы проанализируете его, вы можете настроить cronjob один раз в час, например, (например, в минуту 5 каждый час):
# m h dom mon dow user command
5 * * * * root [DIR_TO_SCRIPT]/grive.sh >> /var/log/grivesh.log 2>&1
Обязательно иметь его в /etc/cron.hourly/
? Разве вы не предпочитаете иметь его в /etc/cron.d/
или в crontab для вашего пользователя?
С уважением,
Кроме неупомянутого пробела в Вашем исходном сценарии (который Вы, кажется, исправили) проблема вероятна с именованием Вашего сценария.
Согласно DEBIAN SPECIFIC
раздел man cron
:
As described above, the files under these directories have to be pass some sanity checks including the following: be executable, be owned by root, not be writable by group or other and, if symlinks, point to files owned by root. Additionally, the file names must conform to the filename requirements of run-parts: they must be entirely made up of letters, digits and can only contain the special signs underscores ('_') and hyphens ('-'). Any file that does not conform to these requirements will not be executed by run-parts. For example, any file containing dots will be ignored. This is done to prevent cron from running any of the files that are left by the Debian package management system when handling files in /etc/cron.d/ as configuration files (i.e. files ending in .dpkg-dist, .dpkg-orig, and .dpkg-new).
С тех пор grive.sh
имеет точку на ее имя, run-parts
проигнорирует его.