Я делаю задание для факультативного университета. Мне нужно использовать сервер от 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.
Я думаю, что cron сам по себе является пользователем, и вы отказываете в этом разрешении с 700. Попробуйте изменить группу на cron и дать ей разрешение на выполнение
chgrp cron /var/www/html/day.txt
chmod g+rx /var/www/html/day.txt
, также убедитесь, что у вас есть правильный заголовок в вашем скрипте, например:
#!/bin/bash
Для запуска этого скрипта он должен быть в файле .sh или shell. Так что вам нужно cp day.txt day.sh
, а затем изменить вашу строку в crontab, чтобы отразить это изменение, и добавить функцию для запуска сценария оболочки. Обязательно включите #!/bin/bash
в свой скрипт оболочки.
18 14 * * * sh /var/www/html/day.sh