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

Raspunde prin e-mail lui