加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何在bash脚本中将FTP文件上传到服务器?

发布时间:2020-12-15 19:55:33 所属栏目:安全 来源:网络整理
导读:我正在尝试写一个将文件上传到服务器的bash脚本。我该如何实现呢?一个bash脚本是正确的用法吗? 你真的应该使用SSH / SCP / SFTP而不是FTP。 SSH / SCP具有更安全的功能,使用公钥/私钥可以在没有用户名或密码的情况下运行。 您可以发送单个文件: scp file
我正在尝试写一个将文件上传到服务器的bash脚本。我该如何实现呢?一个bash脚本是正确的用法吗?
你真的应该使用SSH / SCP / SFTP而不是FTP。 SSH / SCP具有更安全的功能,使用公钥/私钥可以在没有用户名或密码的情况下运行。

您可以发送单个文件:

scp <file to upload> <username>@<hostname>:<destination path>

或整个目录:

scp -r <directory to upload> <username>@<hostname>:<destination path>

有关使用RSYNC设置键和将文件移动到服务器的更多详细信息,如果您有大量文件要移动,或者有时在一组随机文件中只得到一个新文件,那么请看:

http://troy.jdmz.net/rsync/index.html

您还可以在服务器中执行单个命令:

从人ssh

ssh […snipped…] hostname [command] If command is specified,it is
executed on the remote host instead of a login shell.

所以,一个示例命令是:

ssh username@hostname.example bunzip file_just_sent.bz2

如果您可以使用带有密钥的SFTP来获得安全连接的好处,那么我用来执行命令有两个技巧。

首先,您可以使用echo和pipe传递命令

echo "put files*.xml" | sftp -p -i ~/.ssh/key_name username@hostname.example

您也可以使用-b参数的批处理文件:

sftp -b batchfile.txt ~/.ssh/key_name username@hostname.example

如果你明白FTP是不安全和更有限的,你真的想要脚本吗?

http://www.stratigery.com/scripting.ftp.html有一篇伟大的文章

#!/bin/sh
HOST='ftp.example.com'
USER='yourid'
PASSWD='yourpw'
FILE='file.txt'

ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
binary
put $FILE
quit
END_SCRIPT
exit 0

“-n”to ftp确保命令不会尝试从当前终端获取密码。另一个花哨的部分是使用heredoc:<< END_SCRIPT启动heredoc,然后在该行开头的完全相同的END_SCRIPT本身结束heredoc。二进制命令将其设置为二进制模式,如果您正在传输除文本文件之外的其他内容,则可以帮助您。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读