我每周都会向我们的供应商之一传输文件,我正在尝试将其自动化。他们要求我们使用 sftp 传输文件。我们使用用户名和密码登录他们的 SFTP 服务器。
我的脚本可以连接到他们的服务器,但不会处理任何进一步的命令。我的问题是我可以向 LFTP 传递一个脚本以在登录后执行吗?
这是我的脚本。更改凭据以保护无辜者。
fromfile=$1
cd /ssg/cc/outgoing
echo "sftping file ..."
echo $fromfile
lftp -u prodlogin,prodpassword sftp://sftp.datacloud.server.com
cd inbox
!ls
put $fromfile
dir
bye
mv $fromfile /ssg/cc/save/$fromfile
我觉得这里缺少一些简单的东西。这就是为什么我想知道是否可以lftp
通过脚本文件传递命令。
答案1
您几乎不需要脚本
#!/bin/bash
fromfile="$1"
echo "SFTPing file: $fromfile"
lftp --user 'prodlogin' --password 'prodpassword' sftp://sftp.datacloud.server.com/~/inbox -e "put /ssg/cc/outgoing/$fromfile; exit" &&
mv -f "/ssg/cc/outgoing/$fromfile" /ssg/cc/save/