The Diary
Дневникът на Георги
<- Понеделник, 5 Януари 2009 | Начална страница | Сряда, 7 Януари 2009 ->
Вторник, 6 Януари 2009
Отдавна бях забравил за този случай от
преди почти две години, а и просто си мислех, че е странност на ffmpeg.
Докато днес не ми се наложи да дебъгвам един скрипт, който се държеше
странно. Лошото беше, че тук имах комбинация от стартиране на подпроцеси,
четене на данни в главния процес и от време на време извикване на
ssh, за да изпълня команда на отдалечена машина. Тъпото чудо при
всяко пускане работеше до някъде, но всеки път стигаше до различно
място в обработката и след това излизаше. Какво ли не правих докато
ми светна, че и ssh-а изяжда стандартния вход и затова имам проблеми.
Накратко, винаги трябва да се внимава при правене на шел скриптове,
кое от къде чете и дали не изяжда данни. С други думи, това не работи
за повече от първия запис във file:
while read HOST ; do echo $HOST ; ssh $HOST uptime; done < file
...а това работи коректно:
while read HOST ; do echo $HOST ; ssh $HOST uptime < /dev/null; done < file
Дано не ми се налага трети път да боря подобна глупост, защото е много неприятно.
[ Коментари: 4 ]Коментари
Още по-сложно :) Ако за всяка програма, която изяжда входа има отделна опция това е пътят към лудостта. Иначе си прав -n в случая би трябвало да свърши работа, -f е за съвсем друго.
for HOST in `cat FILE`; do echo $host; ssh $HOST uptime; done
Ето така не би трябвало да имаш проблеми. Даже може да си спестиш и cat-a
А сега си представи, че файлът е във формат HOST COMMENT SOMETHING и ще видиш защо го правя с while и read :)
Disclaimer: Except where otherwise noted all opinions expressed here are personal
opinions of the author and do not reflect official opinions of my employer or
any other person, company or organization associated with the author.
Copyright: Except where otherwise noted the content of this site is licensed under a
Creative Commons Attribution License. Текстът на договора за ползване на български
Copyright (cc) 2003-2011 Georgi Chorbadzhiyski. Some rights reserved.
Comments, texts and pictures not signed by me are property of their respective owners.
Страницата е генерирана от Glog v3.99-test
би трябвало да става и с -n или -f
man ssh
Написа martin (www) на 09-Jan-2009 21:49