【问题标题】:How to automate a FTP file transfer on Linux?如何在 Linux 上自动进行 FTP 文件传输?
【发布时间】:2017-12-08 15:23:33
【问题描述】:

我正在尝试在 linux 上自动进行 FTP 文件传输,以在我们的 Intranet 上保留一些备份。我的主要问题是我不能使用 SCP,因为 SHH 破坏了我们的 samba 服务器和其他东西,所以我们被 vsftp 卡住了。

我可能要做的是创建一个 bash 每周在 Cron 中运行。这是我在网上找到的一个例子:

#!/bin/bash
HOST='your.ftp.site'
USER='remoteusername'
PASSWD='remotepasswd'

ftp -n -v $HOST << EOT

   ascii
    user $USER $PASSWD
    prompt
   [COMMANDS GO HERE]
    bye
    EOT

但除了在两台计算机之间传输文件之外,我真的找不到使用什么代码。会是简单的 CAT 吗?

如果有任何帮助,我将不胜感激,谢谢!

【问题讨论】:

  • “SHH 破坏了我们的 samba 服务器和其他东西”——这很奇怪。
  • “但是我真的找不到在两台计算机之间传输文件之外的代码。” - 你的问题似乎不是关于编程,而是关于如何使用 ftp 实用程序。 Google 找到 this
  • 确实如此。但是我的老板显然已经尝试安装 SHH 并且在他恢复之前它在服务器上运行了很长一段时间。所以我不能碰嘘。
  • 如何连接服务器?
  • @123 — 命令ftp -n -v $HOST 连接到服务器

标签: linux bash ftp


【解决方案1】:

有几种可能: 第一:使用lftp。当然你应该阅读精美的手册,但作为一个例子:

echo "mirror --reverse --delete" | lftp -u $username,$password $mysite

或者使用期望:

spawn ftp mysite
expect "Login:"
send "username\r"
expect "ssword:"
send "S0m3ting\r"
expect "ftp>"
send "prompt\r"
expect "ftp>"
send "cd somewher\r"
expect "ftp>"
send "mget allfiles.*\r"
expect "ftp>"
send "mput loadsofotherfiles.*\r"
expect "ftp>"
send "bye\r"

(注意:这将作为第一次测试,但您不应该在生产环境中这样运行)

另请注意,man ftp 将为您提供[COMMANDS(即)GO HERE] 的列表。

附带说明:ssh 和 SAMBA 应该在同一台服务器上运行良好。您可能想研究一下那里出了什么问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-13
    • 1970-01-01
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多