2014-01-28 5 views
1

Я запланировал сценарий с использованием планировщика at в Linux.Проблема с планированием в Linux

Работа выполнена нормально, но инструкции эха, которые я перенаправил в файл, не найдены.

при планировании команды выглядит следующим образом:

at -f /app/data/scripts/func_test.sh >> /app/data/log/log.txt 2>&1 -v 09:50 

Можно ли указать, что проблема с предыдущей командой.

Я не могу видеть эхо заявления от сценария в файле log.txt

+0

Имеет ли пользователь, с которым вы запланировали работу, иметь разрешение на запись в файл '/ app/data/log/log.txt'? –

+0

Да, файл log.txt также создается одним и тем же пользователем. –

+0

При выводе результата из задания для получения электронной почты. Если вы хотите получить вывод в файл, вы должны поместить перенаправление вывода на сам скрипт, в этом случае func_test.sh. –

ответ

3

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

at -v 09:50 <<EOF 
sh /app/data/scripts/func_test.sh >> /app/data/log/log.txt 2>&1 
EOF 

func_test.sh Если уже исполняемый файл, вы можете опустить sh с самого начала команды; он должен убедиться, что вы передаете действительную командную строку до at.

Вы также можете просто убедиться, что ваш скрипт перенаправляет весь свой вывод на конкретный файл журнала. В качестве примера,

#!/bin/bash 

echo foo 
echo bar 

становится

#!/bin/bash 

{ 
echo foo 
echo bar 
} >> /app/data/log/log.txt 2>&1 

Тогда вы можете просто запустить скрипт с at использованием

at -f /app/data/scripts/func_test.sh -v 09:50 

, без перенаправления вывода, потому что сам скрипт уже перенаправляет весь свой вывод к этому файлу.

+0

Работал отлично, какой другой синтаксис складывания в свой скрипт. –