在shell脚本中,使用sftp方式自动上传/下载脚本
上传代码示例如下:
touch scp.BaseCheck
echo ’
#!/usr/bin/expect -f
set timeout 600
spawn sftp ‘UserName1’@‘ServName1’
expect {
“*yes/no” { send “yesr”; exp_continue }
“*Password:” { send “‘PassWd1’r” }
}
expect “>”
send “lcd ‘{DATA}’/PTPLDM/’{yy1}{mm1}{dd1}’/r”
expect “>”
send “cd /backup/upload/r”
expect “>”
send “mkdir ‘{yy1}{mm1}{dd1}’r”
expect “>”
send “cd ‘{yy1}{mm1}{dd1}’r”
expect “>”
send “mkdir pldmr”
expect “>”
send “chmod 775 pldmr”
expect “>”
send “cd /backup/upload/’{yy1}{mm1}{dd1}’/pldm/r”
expect “>”
send “put ‘{MYDATA}’/PTPLDM/’{yy1}{mm1}{dd1}’/pldm_data_pl_’{yy1}{mm1}{dd1}‘000.tarr"
expect “>”
send "put ‘{MYDATA}’/PTPLDM/’{yy1}{mm1}{dd1}’/pldm_data_pl’{yy1}{mm1}{dd1}’_000.okr”
expect “>”
send “cd /home/gpadmin/ETL/DATA/receive/r”
expect “>”
send “put ‘{MYDATA}’/PTPLDM/’{yy1}{mm1}{dd1}’/dir.PLDM_DATAFILE’{yy1}{mm1}${dd1}’r”
expect “>”
send “byer”
expect eof
’ > scp.BaseCheck
#注意脚本执行路径
expect -f {MYDATA}/PTPLDM/{yy1}{mm1}{dd1}/scp.BaseCheck 2>&1 | tee $ferr
grep -E “100%” $ferr| wc -l | read res
if [ $res -ne 0 ]
then
echo “数据传输完毕!”
else
echo “数据传输失败!”
exit 1
fi
下载代码示例如下:
touch scp.BaseCheck
echo ’
#!/usr/bin/expect -f
spawn sftp ‘UserName1’@‘ServName1’
expect {
“*yes/no” { send “yesr”; exp_continue }
“*Password:” { send “‘PassWd1’r” }
}
expect “>”
send “get /backup/expdata/’{yy1}{mm1}{dd1}’/pld/exp_pldm_plms_’{yy1}{mm1}{dd1}’.tarr”
expect “>”
send “get /backup/expdata/’{yy1}{mm1}{dd1}’/pld/exp_pldm_plms_’{yy1}{mm1}{dd1}’.okr”
expect “>”
send “byer”
expect eof
’ > scp.BaseCheck
expect -f {PLMSDATA}/PTPLDM/scp.BaseCheck 2>&1 | tee $ferr
本文发布于:2024-02-03 00:41:40,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170689210147531.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |