2015-04-03 2 views
0
a=$(iostat | awk 'FNR==4 {print $1}') 
b=$(iostat | awk 'FNR==4 {print $2}') 
c=$(iostat | awk 'FNR==4 {print $3}') 
d=$(iostat | awk 'FNR==4 {print $4}') 
e=$(iostat | awk 'FNR==4 {print $5}') 
f=$(echo "scale=2;$a+$b+$c+$d+$e" | bc) 
f=${f::-3} 
echo $f >> /home/srikanth/tst 

Это мой код. Я написал его для загрузки процессора. Я хотел запланировать его в crontab для запуска его каждую минуту. Когда я выполняю его вручную, он работает нормально. но когда я запланировать его в кронтаб он создает dead.letter с ошибкойОшибка при неправильной замене при составлении сценария планирования в crontab

/home/srikanth/srk.sh: 7: /home/srikanth/srk.sh: Bad подмена

Может ли один дать мне из этого

Спасибо .....

+0

ПРЕДЛОЖЕНИЕ: Запустите скрипт с -x (подробный вывод отладки) из хрон, чтобы лучше понять, что происходит неправильно. – FoggyDay

+0

Я выполнил его вручную с -x, он дает ошибку {./srk.sh: строка 10:/home/srikanth/tst: Permission denied}. Но у файла «tst» есть 666 разрешений –

+0

И какие разрешения имеют/home/srikanth? Очевидно, что разрешения не совпадают, также вы не сказали нам группу и владельца tst и под каким пользователем вы запускаете свой скрипт. Проверьте правильность разрешений на каждую часть пути. – scai

ответ

2

«Bad подмена» звучит как оболочка не может обработать ваш сценарий. shebang Вы используете? Я предполагаю, что cron запускает ваш скрипт с другой оболочкой, чем тот, который вы используете, например. тире вместо bash.

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

#!/bin/bash 
Смежные вопросы