Я добавил строку
*/1 * * * * /home/zach/test.sh
в свой crontab, где содержимое /home/zach/test.sh
выглядит следующим образом:
touch /home/zach/test.txt
Тем не менее, файл test.txt
не создается в этой папке. Есть ли причина, по которой cron не будет выполнять желаемую работу?
В /1
нет необходимости. Просто сделайте
* * * * * /home/zach/test.sh
РЕДАКТИРОВАТЬ: я написал «На самом деле, я думаю, что /N
означает« пропустить каждый N-й экземпляр », и в этом случае будет пропускать каждый экземпляр. "Это не так, это означает" каждый N-й экземпляр ". Поэтому оба варианта работают. Поэтому я удалю свой ответ. Я думаю, что у вас есть проблемы с разрешениями. Почему бы не попробовать
* * * * * /usr/bin/touch /tmp/blah
Если ваш сценарий все еще не выполнен, вы можете обратиться по адресу http://www.tcpdump.com/kb/os/linux/linux-cron-tutorial.html
попробуйте * * * * * /usr/bin/sh /home/zach/test.sh
Во-первых, ваш файл test.sh
должен выглядеть следующим образом:
#!/bin/bash
touch /home/zach/test.txt
, если вы хотите, чтобы это был скрипт bash.
Во-вторых, убедитесь, что у этого скрипта есть права на выполнение. Для этого выполните команду в терминале:
chmod +x /home/zach/test.sh
В-третьих, убедитесь, что у вас есть разрешение на создание новых файлов в /home/zach
.
В-четвертых, добавьте свою новую работу cron с помощью команды crontab -e
.