【发布时间】:2013-08-12 17:30:28
【问题描述】:
如何使用scp命令上传文件到aws服务器
- 我在本地机器的
/Downloads中有.pem 文件 -
我正在尝试将文件复制到 AWS 服务器中的
/images文件夹我可以使用什么命令?
谢谢,
【问题讨论】:
标签: amazon-web-services amazon-ec2
/Downloads 中有.pem 文件我正在尝试将文件复制到 AWS 服务器中的 /images 文件夹
我可以使用什么命令?
谢谢,
【问题讨论】:
标签: amazon-web-services amazon-ec2
您可以尝试kitten 实用程序,它是对 boto3 的封装。您可以轻松上传/下载文件并在 EC2 服务器上或同时在多台服务器上运行命令。
kitten put -i ~/.ssh/key.pem cat.jpg /tmp [SERVER NAME][SERVER IP]
其中服务器名称是例如 ubuntu 或 ec2-user 等。
这会将cat.jpg文件上传到服务器的/tmp目录
【讨论】:
这是从本地上传到远程的正确方法。
scp -i "zeus_aws.pem" ~/Downloads/retail_market_db-07-01-2021.sql ubuntu@ec2-3-108-200-27.us-east-2.compute.amazonaws.com:/var/www/
可能是更好的方法
【讨论】:
scp 的另一种替代方式是rsync。
rsync -ravze "ssh -i /home/your-user/your-key.pem " --exclude '.env' --exclude '.git/' /var/www/your-folder-to-upload/* ubuntu@xx.xxx.xxx.xxx:/var/www/your-remote-folder
现在,如果您发现此语法有点冗长,您可以使用aws-upload,它可以完成上述所有操作,但您只需使用制表符即可。
【讨论】:
--append--append-verify?见here。
迭戈的回答有效。但是,如果您不知道您的弹性 IP,那么您可以简单地使用以下命令 scp(检查参数的顺序)
scp -i path-to-your-identifier.pem 要复制的文件 ubuntu@public-IP:/required-path
仅供参考,这里 ubuntu 是您的 AWS 用户,public-IP 有点像 54.2xx.xxx.xxx 例如54.200.100.100 等
(如果顺序混乱:标识符之前的文件名,那么你会得到一个Permission denied (publickey).lost connection 错误)
另外,请记住.pem 文件的权限。应该是 400 或 600。不向所有人公开。
希望对您有所帮助!
【讨论】:
你可以使用普通的scp:
scp -i ~/Downloads/file.pem local_image_file user@ec2_elastic_ip:/home/user/images/
你需要给 EC2 实例设置一个弹性 IP,在 EC2 实例安全组中打开你本地机器 IP 的 22 端口,并使用正确的用户(可以是 ec2-user、admin 或 ubuntu(查看AMI 文档))。
【讨论】:
有很多方法可以实现你想要的
使用 s3cmd http://s3tools.org/s3cmd
或使用cyberduck http://cyberduck.ch/
或使用亚马逊Java API编写工具
【讨论】:
cyberduck 之类的Linux 吗?