in reply to Re: Rename all files on remote server to *.bak recursively
in thread Rename all files on remote server to *.bak recursively
Thanks for the suggestion; however my files were not renamed: My code is now:
#!/usr/bin/perl my $h="testapp01"; my $dirname="/home/wasbatsrv/tmp/testbak"; my $uid="wasbatsrv"; my @remote_files= qx(ssh $uid\@$h 'find $dirname'); # Munge filenames to commands: my @commands= map { sprintf "mv -i '%s' '%s.bak'", quotemeta($_), quo +temeta($_) } @remote_files; # Send list of commands to the remote side: # First, a dry-run instead of actually doing that: my $remote= \*STDOUT; # Use this to actually do the remote execution: open $remote, "| ssh -q $uid\@$h"; print { $remote } join "\n", @commands;
But the files are not renamed and this is the output:
Pseudo-terminal will not be allocated because stdin is not a terminal +. mv: cannot stat `\\/home\\/wasbatsrv\\/tmp\\/testbak\\\n': No such fil +e or directory mv: cannot stat `\\/home\\/wasbatsrv\\/tmp\\/testbak\\/testbakr\\\n': +No such file or directory mv: cannot stat `\\/home\\/wasbatsrv\\/tmp\\/testbak\\/testbakr\\/thre +e\\.properties\\\n': No such file or directory mv: cannot stat `\\/home\\/wasbatsrv\\/tmp\\/testbak\\/testbakr\\/four +\\.properties\\\n': No such file or directory mv: cannot stat `\\/home\\/wasbatsrv\\/tmp\\/testbak\\/two\\.propertie +s\\\n': No such file or directory mv: cannot stat `\\/home\\/wasbatsrv\\/tmp\\/testbak\\/one\\.propertie +s\\\n': No such file or directory
Here is the directory listing:
[wasbatsrv@testapp01 testbak]$ ls one.properties testbakr two.properties
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: Rename all files on remote server to *.bak recursively
by Corion (Patriarch) on Jun 06, 2014 at 12:46 UTC | |
by nancylt723 (Initiate) on Jun 09, 2014 at 12:35 UTC | |
by salva (Canon) on Jun 09, 2014 at 12:48 UTC | |
by nancylt723 (Initiate) on Jun 09, 2014 at 15:25 UTC |