I want to execute my shell script on remote machine using SSH in perl script.
Please help me with syntax.
This is a simple example of copying a file to a remote host via scp:
# Copy file to remote server
print "**Copying file($file_name) to $host.\n";
$shell_cmd = "scp -p ${local_dir}/${file_name} ${user}\@${host}:${dir_for_file}";
$retval = system( $shell_cmd );
if ($retval != 0) {
print "**Error: Could not copy file($local_dir/${file_name}) to $host: ${dir_for_file}.\n";
return 1;
}
else {
writelog ("INF Successful copy of file($local_dir/${file_name}) to $host: ${dir_for_file}");
print "**Successful copy of file($local_dir/${file_name}) to $host: ${dir_for_file}\n";
}
This is a simple example of running script, command, etc. on remote host via ssh:
# Unzip files from zip file on remote host
print "**Unzipping files from zip file($zip_file_name) on $host to directory(${files_dir_for_rpt_files}).\n";
$shell_cmd = "ssh ${user}\@${host} 'unzip -jo /tmp/${zip_file_name} -d ${files_dir_for_rpt_files}'";
$retval = system( $shell_cmd );
if ($retval != 0) {
print "**Error: Error unzipping zip file($zip_file_name) on $host in /tmp to ${files_dir_for_rpt_files}.\n";
return 1;
}
else{
print "**Successful unzipping of files from zip file($zip_file_name) on $host to directory(${files_dir_for_rpt_files}).\n";
}
That is 99% shell code with a thin layer of perl, why not just do it in shell?