我正在尝试在 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 吗?
非常感谢任何帮助,谢谢!
有几种可能:第一:使用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
(即)转到此处]
的列表。
顺便说一下:ssh 和 SAMBA 应该在同一台服务器上运行良好。您可能想研究一下那里出了什么问题。
我是一名优秀的程序员,十分优秀!