linux/unix脚本中使用sftp上传/下载文件

在shell脚本中,使用sftp方式自动上传/下载脚本
上传代码示例如下:
touch scp.BaseCheck
echo ’
#!/usr/bin/expect -f
set timeout 600
spawn sftp ‘UserName1’@‘ServName1’
expect {
“*yes/no” { send “yes\r”; 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 pldm\r”
expect “>”
send “chmod 775 pldm\r”
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.tar\r"
expect “>”
send "put ‘{MYDATA}’/PTPLDM/’{yy1}{mm1}{dd1}’/pldm_data_pl
’{yy1}{mm1}{dd1}’_000.ok\r”
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 “bye\r”
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 “yes\r”; exp_continue }
“*Password:” { send “‘PassWd1’\r” }
}
expect “>”
send “get /backup/expdata/’{yy1}{mm1}{dd1}’/pld/exp_pldm_plms_’{yy1}{mm1}{dd1}’.tar\r”
expect “>”
send “get /backup/expdata/’{yy1}{mm1}{dd1}’/pld/exp_pldm_plms_’{yy1}{mm1}{dd1}’.ok\r”
expect “>”
send “bye\r”
expect eof
’ > scp.BaseCheck

expect -f {PLMSDATA}/PTPLDM/scp.BaseCheck 2>&1 | tee $ferr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值