Перейти к содержимому

команда "at" не работает

2

Я хотел запланировать работу с atкомандой и увидеть эту ошибку:

 [root@labeir1 exm]# date Sun Dec 9 01:54:45 IST 2012 [root@labeir1 exm]# at 01:47 "df -kh" syntax error. Last token seen: d Garbled time 

Даже то же самое без кавычек не работает.

Принимая во внимание, что, когда я планирую ту же самую команду быть выполненной как это:

 [root@labeir1 exm]# echo df -kh | at 01:47 job 4 at 2012-12-10 01:47 

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

5 212 просмотров
dig_123 спросил 13 лет назад
D 331

4 ответа

3

No, the output will not appear on the console.  I would expect the output to be e–mailed to you.  Try

echo df –kh | at –m 01:47 

to explicitly ask for e–mail, or

echo "df –kh > df_output.txt" | at 01:47 

to write to a file.

Scott ответил 13 лет назад
S 15 457
1

Попробуйте что-то вроде:

mesg y # this is just to make sure you may write to your user at now + 1 min at>df -kh | write $USER at>^D 

Если это не сработает, либо вы не util-linuxустановили с pty-helperвключенным флагом, либо вам нужно указать экран, на котором вы хотите выводить данные (это, вероятно,$DISPLAY )

Обратите внимание, что если вы делаете что-то вроде:

at now + 1 min at>xterm at>^D  

Это, вероятно, сработает, если у вас установлен xterm (протестируйте его с любым терминалом, который вы используете). Итак, я предполагаю, что реальная проблема заключается в том, что команда выполняется в фоновом режиме, и вам нужно извлечь строку, которую вы хотите запросить, и сделать с ней все, что вам нужно (возможно, отправить ее любому пользователю с помощью команд writeили wall).

Rubén Marrero ответил 11 лет назад
R 205
0

Try removing the :, so :

echo 'df -kh' | at 0147 

Если вы считаете, что ответ полезен, вы можете его «поддержать». Вы также можете «принять» ответ, щелкнув контур «галочки» (будет зеленым), таким образом, люди, выполняющие поиск на веб-сайте, будут знать, что на вопрос дан хороший ответ. Вот так работают сайты stackechange, спасибо;)

Gilles Quenot · 13 лет назад · 0

Подтверждающее сообщение job 4 at 2012-12-10 01: 47 предполагает, что at правильно анализирует 01: 47.

Scott · 13 лет назад · 6
Gilles Quenot ответил 13 лет назад
G 2 791
0

Небольшое примечание, но так как я всегда боролся с выводом «искаженного времени» at, я подумала, что поделюсь с этим своим решением. Мое решение состоит в том, чтобы обернуть в функцию и использовать, более щадящий, dateчтобы исправить искаженные сообщения времени.

function at { unset IFS MOMENT=$* AT=$(which at)  # First try at to see if I finally figured out to produce non-garbled time if $ $ 2>/dev/null then # worked allright, we can exit exit else # We produced garbled time (duh), so let's fix this with date MOMENT=$(date --date "$" +'%Y%m%d%H%M') fi  # and try again $ -t $ } 

Это лучше всего работает на системах с установленной датой GNU (большинство систем linux).

steviethecat ответил 10 лет назад
S 101