Простой скрипт работает в терминале, но не crontab

Я делаю задание для факультативного университета. Мне нужно использовать сервер от amazon ec2 и изменить его доменное имя, создать блог с использованием apache и создать творческий скрипт, который периодически запускается с использованием crontab.

По сути, я просто хочу, чтобы мой блог имел фон ночного неба, когда он достигает 8 вечера по сингапурскому времени, и фон дневного неба, когда он достигает 6 утра.

У меня Windows PC, и мой сервер Amazon использует Ubuntu, поэтому я использую PuTTY и WinSCP для редактирования и прочее.

в /var/www/html есть два файла .txt, один (day.txt), который говорит:

cp -R /var/www/html/downloads/Day/index.html /var/www/html

Он заменяет индексный файл, расположенный в /html, файлом с дневным фоном изображения в HTML. Существует еще один файл с именем night.txt, который является тем же, за исключением его /Night/index.html вместо /Day/index.html.

Скажем, текущий файл index.html в /html - это файл с дневным изображением, и я использую терминал замазки и запускаю ночной скрипт с ./night.txt, он работает. Когда я обновляю свой веб-сайт, он меняется на дневной фон, но когда я пытаюсь сделать это с помощью crontab, это не так.

Итак, я набираю crontab -e в терминале и изменяю строку на:

# m h  dom mon dow   command
18 14 *   *   *     /var/www/html/day.txt

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

Я нажимаю ctrl o, чтобы сохранить, и ctrl x, чтобы выйти, и я уверен, что crontab есть, потому что, когда я ищу его в WINSCP в /tmp/crontab.7xxxx, он там с правильной строкой.

Я использовал sudo chmod 700 night.txt и sudo chmod 700 day.txt, чтобы дать сценарию права доступа r / w / e.

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

0
задан 28 May 2017 в 10:39

2 ответа

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

chgrp cron /var/www/html/day.txt

chmod g+rx /var/www/html/day.txt

, также убедитесь, что у вас есть правильный заголовок в вашем скрипте, например:

#!/bin/bash
0
ответ дан 28 May 2017 в 10:39

Для запуска этого скрипта он должен быть в файле .sh или shell. Так что вам нужно cp day.txt day.sh, а затем изменить вашу строку в crontab, чтобы отразить это изменение, и добавить функцию для запуска сценария оболочки. Обязательно включите #!/bin/bash в свой скрипт оболочки.

18 14 * * * sh /var/www/html/day.sh
0
ответ дан 28 May 2017 в 10:39

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

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