shell - 如何直接从脚本向 ftp 终端提供输入
问题描述
我正在尝试将一组文件 ftp 到客户端服务器。我尝试使用 ftp 将其自动化,因为我们还没有 SSH 密钥设置。我已将目标主机(名称、UN、PW)存储在 .netrc 文件中。执行脚本时,它会打开 ftp 终端并停止。如何在打开 ftp 终端后继续执行脚本?你们能帮忙吗?
#!/bin/ksh
cd /scripts
. ./getYesterdayDate.sh
today=${YESTERDAY_DT}
today=`echo $today | sed 's/-//g'``
echo "Today is $today"
#Copying file from Source server
/usr/local/bin/scp UN@HOST:/backup/abc*.$today /scripts
#Renaming the files to custom names in the intermidatory server
cd /scripts
rm abc.data
touch abc.data
cat abc.data.$today >> abc.data
chmod a+r *
mv abc.START.$today abc.START
mv abc.END.$today abc.END
#FTPing to the DESTINATIONSERVER
/usr/bin/ftp DESTINATIONSERVERenter code here
cd /test
put abc.START
put abc.END
put abc.data
#In the above statements, when ftp is successful, instead of taking "cd /test" as input, terminal just stays at "ftp>"
echo "Upload for $today" | mailx -s "Successfull" name@domain.com
谢谢
解决方案
如果.netrc
设置正确且 ftp 命令未提示输入凭据,则您可以使用以下命令上传文件:
echo put abc.START /test/abc.START | ftp DESTINATIONSERVER
echo put abc.END /test/abc.START | ftp DESTINATIONSERVER
echo put abc.data /test/abc.START | ftp DESTINATIONSERVER
推荐阅读
- hibernate - 一对多级联所有 - 拯救儿童和家属
- python - 处理xml中属性的空白值
- couchdb - 无法添加用户
- android - 如何使用 RecyclerView 执行缓动滚动
- spring - 如何使用 Java Spring 启动缓存
- reactjs - React tic-tac-toe 教程 calculateWinner:函数与方法
- python - NumPy:可让我访问数组的“vectorize”的替代方案
- android - Dotfuscasor Xamarin Dotfocused assembles 与反编译 apk 中的不同
- android - Android R:启动默认启动活动不起作用
- java - 使用 Spring JPA 按名称 ASC 排序