Cosmin Dumitru wrote: > Salut, > > Incerc sa rulez un one-liner peste ssh. El arata cam asa: > > LOGFILES="cmdaemon mail.log messages syslog user.log" > ssh -v $LOGHOST bash -c "for logfile in $LOGFILES do echo 'NEW CLEAN > STATE : $CURRENTDATE' >> $LOGMASTER1/$logfile done" > > La rulare verbose obtin ceva de genul asta > > debug1: Sending command: bash -c for logfile in auth.log cmdaemon > daemon.log debug kern.log mail.log messages syslog user.log do > echo 'NEW CLEAN STATE : 12:31:35' >> /var/log/145.100.106.24/'' done > debug1: client_input_channel_req: channel 0 rtype exit-status reply 0 > debug1: client_input_channel_req: channel 0 rtype [email protected] reply 0 > bash: /var/log/145.100.106.24/: Is a directory > > > Asta inseamna ca variabila $logfile din for nu este inlocuita cu un > element din arrayul meu. Variabilele locale sunt inlocuite bine merci > (vezi arrayul de fisiere). > > O solutie foarte hacky este sa scriu scriptul meu intr-un fisier > separat, sa il copiez pe masina remote si sa il rulez via ssh. De mers > ar trebui sa mearga dar nu imi place pentru ca lucrurile incep sa se > fragmenteze si e mai greu de urmarit totul. > > Multumesc, > Cosmin > _______________________________________________ > RLUG mailing list > [email protected] > http://lists.lug.ro/mailman/listinfo/rlug > Scuze pentru zgomot. Am gasit problema: " de la inceputul comenzii fac interpretorul sa faca inlocuire de variabile iar $logfile e tratata ca variabila locala. Evident e inlocuita cu nimic si de aici rezulta ceva care nu are cum sa mearga. Solutia a fost sa adaug \ acolo unde apare $logfile. E o problema clasica de ' vs " .
Cosmin _______________________________________________ RLUG mailing list [email protected] http://lists.lug.ro/mailman/listinfo/rlug
