2015-12-28 2 views
0

Я использую следующий код для записи в файл с названием maintainence.logПеренаправление STDERR в STDOUT, а затем в файл

`LOCALHOST:>less wrap.sh | grep avsp 

avsp=$ (df -kh | grep "/global/backups" | awk -F " " '{ print $4 }'2>&1
echo "Info $DATE: Available diskspace $avsp" >> maintainence.log
но когда я запустить скрипт wrap.sh LOCALHOST:>./wrap.sh Я получаю ниже результат:

df: `/lfs/wwwmnt/lt2-p-web-intra1': Stale NFS file handle 
df: `/lfs/wwwmnt/lt2-p-web-intra1': Stale NFS file handle 

Однако мое намерение чтобы как Ошибки, так и STDout записывались в файл maintainence.log.

ответ

1

Вы в основном говорят:

var=$(command) >> maintainence.log 2>&1 

Так что переназначение не влияет на выполнение command. Вместо этого поместите перенаправление в $() перенаправить поток ошибок на стандартный вывод и echo его позже:

var=$(command 2>&1) 
echo "$var" >> maintenance.log 

В вашем случае:

avsp=$(df -kh | grep "/global/backups" | awk -F " " '{ print $4 }' 2>&1) 
echo "Info $DATE: Available diskspace $avsp" >> maintainence.log 
+0

Спасибо за информацию. Я сделал предложенные изменения: avsp = $ ('df -kh | grep"/global/backups "| awk -F" "'{print $ 4}'' 2> & 1) echo "Info $ DATE: Доступное дисковое пространство $ avsp ">> maintainence.log Но все же O/p - это то же самое, он не записывается в файл keepece.log O/p-df:'/lfs/wwwmnt/lt2-p-web-intra1 ': Stale NFS file handle – robotTech

+0

@VinayThupili У меня такое ощущение, что вы используете слишком много backticks. Измените исходный вопрос и вставьте точные команды, которые вы используете. – fedorqui

+0

@ VinayThupili, как я только что сказал: отредактируйте свой вопрос, указав * точные * команды, которые вы используете. Я не могу понять код в комментариях. – fedorqui

 Смежные вопросы

  • Нет связанных вопросов^_^