使用 LFTP 自动化 SFTP

使用 LFTP 自动化 SFTP

我每周都会向我们的供应商之一传输文件,我正在尝试将其自动化。他们要求我们使用 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/

相关内容