Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Linux上自动化FTP文件传输?_Linux_Bash_Ftp - Fatal编程技术网

如何在Linux上自动化FTP文件传输?

如何在Linux上自动化FTP文件传输?,linux,bash,ftp,Linux,Bash,Ftp,我正在尝试在linux上自动进行FTP文件传输,以便在我们的intranet上保留一些备份。我的主要问题是我不能使用SCP,因为SHH破坏了我们的samba服务器和其他东西,所以我们只能使用vsftp 我可能要做的是创建一个bash,每周在Cron中运行。这是我在互联网上找到的一个例子: #!/bin/bash HOST='your.ftp.site' USER='remoteusername' PASSWD='remotepasswd' ftp -n -v $HOST << EO

我正在尝试在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
#/bin/bash
HOST='your.ftp.site'
用户=“远程用户名”
PASSWD='remotepasswd'

ftp-n-v$HOST有几种可能性: 第一:使用
lftp
。当然,您应该阅读精细手册,但作为示例:

echo "mirror --reverse --delete" | lftp -u $username,$password $mysite
或使用expect:

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"
(注意:这将作为第一个测试,但在生产环境中不应这样运行)

另外请注意,
manftp
将为您提供一个
[命令(即)
转到此处]
的列表


附带说明:ssh和SAMBA应该在同一台服务器上正常运行。你可能想研究一下哪里出了问题。

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