代码部署的那些事(一)——SFTP上传代码

以前写app的时候,都是将app上传到app store,然后等待苹果审核成功,点击发布更新就OK了。而后来,在写接口和前端的过程中,经历过直接使用SFTP上传Git钩子同步Git+Fabric部署代码这三个过程。今天,就来聊聊部署代码的那些事。

SFTP上传代码

起初,不知道其它部署代码的姿势,就知道个FTP,于是Google找FTP相关内容。后来,发现在mac上不支持ftp命令,但我在查找的时候,找到了SFTP。

那什么是SFTP呢?

SFTP是SSH文件传输协议(英语:SSH File Transfer Protocol,也称Secret File Transfer Protocol,中文:安全文件传送协议,英文:Secure FTP或字母缩写:SFTP),是一数据流连接,提供文件访问、传输和管理功能的网络传输协议

那如何使用它呢?

在终端输入连接命令,然后输入远程服务器密码(如果已经将本地ssh公钥写入了远程服务器的/root/.ssh/authorized_keys文件中,密码也不用输入),建立连接。之后,上传文件使用put命令,拉取文件使用get命令。

具体过程,参考如下:

$ sftp root@192.168.0.1 #192.168.0.1代表远程服务器的ip,root是ssh登陆的用户
sftp> put train.py /root/train.py #将本地当前目录的train.py文件上传到远程服务器/root/train.py路径下
sftp> get /root/train.py test.py #将远程服务器的/root/train.py文件拉取到本地为test.py文件

是不是很简单?
只需要使用putget,就可以将服务器代码上传到你想要的路径下。

当然,还有更多命令,例如你想上传或拉取文件目录怎么办?只需要在命令加上-r就行了,如下:

sftp> put -r test . #上传文件目录到远程服务器当前路径下
Uploading test/ to /root/lcg_123/./test
Entering test/
sftp> get -r test . # 将远程服务器拉取到本地当前路径下
Fetching /root/lcg_123/test/ to ./test
Retrieving /root/lcg_123/test

有时,你不知道远程服务器或当前服务器是在哪个路径下,此时可以使用pwd查看远程服务器路径,使用lpwd查看本地路径,如下:

sftp> pwd
Remote working directory: /root/lcg_123
sftp> lpwd
Local working directory: /Users/liuchungui/lcg_123

两个命令的差别是,操作本地的命令多了个l,它代表是local的意思。

同样原理,查看远程服务器当前目录文件列表使用ls,查看本地使用lls,如下:

sftp> ls
test      test.txt  
sftp> lls
1.txt       test        test.txt

具体sftp支持哪些命令,可以通过help进行查看:

sftp> help

SFTP工具

在使用命令行的过程中,发现有时使用不是方便。于是,找到一个工具在使用,我使用的是Transmit这个工具,这样只需要拖拽就可以上传代码了。

总结

SFTP上传代码,使用起来简单易上手。特别是在项目初期,想立马看到效果时,我会直接使用工具把它拖拽到对应目录。

参考

linux sftp 安全文件传输命令

    原文作者:liuchungui
    原文地址: https://www.jianshu.com/p/41a97b31eaa2
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞