![使用 Linux 的 bash 脚本将文件上传到 ftp](https://linux22.com/image/1516844/%E4%BD%BF%E7%94%A8%20Linux%20%E7%9A%84%20bash%20%E8%84%9A%E6%9C%AC%E5%B0%86%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E5%88%B0%20ftp.png)
我知道这是一个非常简单的问题,但不幸的是我找不到解决我的问题的任何方法。
x.txt
我在根目录中有一个文件叫做:/x.txt
。
我想将文件上传到我的服务器的以下路径:/public_html/backup
,
所以上传后它会像这样- /public_html/backup/x.txt
。
我已经尝试过这个页面中的每个答案:如何从命令行通过 FTP 上传一个文件?
但都不起作用。我找到了以下代码:
#!/bin/bash
ftp -n -v host.net.com << EOT
ascii
user uname pass
cd /public_html/
ls -la
bye
EOT
结果如下:(用户名和密码正确)
[root@centos-512mb-nyc3-01 ~]# ./linux
./linux: line 1: $'\r': command not found
./linux: line 3: $'\r': command not found
./linux: line 10: warning: here-document at line 4 delimited by end-of-file (wan')d `EOT
Connected to host.net.com (78.47.98.110).
220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
220-You are user number 2 of 50 allowed.
220-Local time is now 03:44. Server port: 21.
220-This is a private system - No anonymous login
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
Remote system type is UNIX.
Using binary mode to transfer files.
?Invalid command
331 User admin OK. Password required
530 Login authentication failed
Login failed.
530 You aren't logged in
530 You aren't logged in
Passive mode refused.
?Invalid command
?Invalid command
221-Goodbye. You uploaded 0 and downloaded 0 kbytes.
221 Logout.
答案1
我已经找到了该问题的解决方案,我使用 Windows 字符集编写代码,然后使用 Windows EOL 将其传输到 Unix。
我设法用 notepad++ -> 编辑 - EOL 转换 - 并更改为我想要的字符集来修复它。
谢谢。