in reply to Re^2: Backup Script Pb
in thread Backup Script Pb

Instead of sleeping for a fixed amount of time, you can use the wait_eof method.

Replies are listed 'Best First'.
Re^4: Backup Script Pb
by WTem (Novice) on May 04, 2016 at 03:59 UTC

    Can you please enlight me with this method ? I read about the eof command in perldoc site.

    I may not use it correctly but what I did is to close the ssh connexion like this:

    $chan->close() if eof;

    It works too ...

        Oops, I have just discovered that there wasn't any wait_eof method. The function libssh2_channel_wait_eof was not being wrapped by Net::SSH2.

        Also, unfortunately, wait_closed fails unless the channel is already at EOF.

        My advice is to get the new version 0.59_16 which I have just uploaded to CPAN and providing wait_eof and use it as follows:

        my $chan = $ssh->channel(); $chan->ext_data('merge'); $chan->shell(); print $chan <<EOS; cd /tmp dbcfg_export -o /tmp/$filename.cfg -p '$pwdfile' tar -C /usr/local/cdcs -zcvf - ipsec.d openvpn-keys ssh-hostkeys \\ | openssl des3 -salt -k '$pwdfile' \\ | dd of=/tmp/vpn.des3 tar -zcvf /opt/cdcs/upload/$filename.cfg.tar.gz $filename.cfg vpn.des3 EOS $chan->send_eof; print while (<$chan>); $chan->wait_eof; $chan->close;