* * * * * root bash /home/alan/Desktop/clientscript.sh > /home/alan/Desktop/alan.txt
Я должен произвести в alan.txt от входа clientscript.sh, но он дает пустой вывод на alan.txt, я не могу найденный, что является ошибкой
Это не работает, пробуют некоторых для передачи этого
это - с созданием живого CD человечность 18.04lts OS
Убедитесь, что вы создаете свой cronjob, используя:
crontab -e
. Независимо от того, каким пользователем вы вошли в систему, как при выполнении вышеупомянутой команды, будет тем пользователем, которым выполняется cronjob. Если вы хотите, чтобы ваш cronjob выполнялся от имени пользователя root, вам необходимо войти в систему как пользователь root или использовать команду sudo:
sudo crontab -e
Если вы создадите свою работу с помощью приведенной выше команды, эта «корневая» часть прервется. вещи. Ваша работа должна выглядеть так:
* * * * * /bin/bash /home/alan/Desktop/clientscript.sh > /home/alan/Desktop/alan.txt
Всегда используйте абсолютные пути в cronjobs, иначе они могут сломаться.
Как отмечает PerlDuck:
Если вышеупомянутое является cronjob в каком-то файле /etc/cron.d/, тогда корневая часть является обязательной. Но только там, как вы правильно указали. cronjobs ниже /etc/cron.d - это так называемые системные cronjobs. Синтаксис почти такой же, за исключением того, что вы должны указать пользователя, которому задание следует запустить, в дополнительном столбце после указания времени. И, конечно, вы должны быть пользователем root для создания файлов в этом каталоге - PerlDuck
blockquote>Итак, если вы вручную создаете файл cron в /etc/cron.d, тогда оригинальное задание cron будет правильным :
* * * * * root /bin/bash /home/alan/Desktop/clientscript.sh > /home/alan/Desktop/alan.txt
ИМХО, создавать cronjobs с
crontab -e
намного проще.Наконец, вы можете увидеть любой вывод ваших cronjobs, запустив:
grep CRON /var/log/syslog
Выполненный crontab -e
и помещенный после строки в него:
*/1 * * * * /home/alan/Desktop/clientscript2.sh 1> /dev/null 2> /home/alan/test.err
вставьте Ваш clientscript2.sh
файл после содержания:
#!/bin/bash
/home/alan/Desktop/clientscript.sh > /home/alan/Desktop/alan.txt
Это работает каждую минуту. test.err
файл даст Вам ошибку на выходе в случае, если команда не успешно выполняется.