Я сделал сценарий оболочки названным /home/root/cron_grads.sh
(chmodded 755) на моем сервере.
В этом каталоге больше сценариев выпускников как 500hPa_p0.gs
(644). Мой основной сценарий создает временный файл grads_exec.gs
, заливки это с некоторым содержанием и затем пытаются скопировать содержание 500hPa_p0.gs
на конец его прежде, чем выполнить все это Это хорошо работает, даже на сервере, если я запускаю его вручную.
Но использование crontab -e
с:
42 0,6,12,18 * * * /home/root/grads/cron_grads.sh
... ошибка происходит. Сценарий запускается, но выпускники говорят:
cat: 500hPa_p0.gs: File or directory not found
Я использую, избивают cron_grads.sh
с #!/bin/bash
наверху в нем. crontab -e
также содержит SHELL=/bin/bash
.
Какие-либо идеи?
Это - проблема в Вашем cron_grads.sh
сценарий. Когда Вы называете его вручную, я предполагаю, что Вы находитесь в /home/root
таким образом, это выполнило бы что-то как:
echo test > grads_exec.gs
cat 500hPa_p0.gs >> grads_exec.gs
Но если Вы выполнили это от в то время как в /home/oli/
, это попыталось бы записать в /home/oli/grads_exec.gs
и читайте из /home/oli/500hPa_p0.gs
. Вот почему кошка аварийно завершается в Вашем случае.
Зафиксировать, любой явно CD в правильный каталог (и использовать полный путь):
cd /home/root
echo test > grads_exec.gs
cat 500hPa_p0.gs >> grads_exec.gs
Или используйте полные пути везде:
echo test > /home/root/grads_exec.gs
cat /home/root/500hPa_p0.gs >> /home/root/grads_exec.gs
Или в целях безопасности, оба.