以前写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文件
是不是很简单?
只需要使用put
和get
,就可以将服务器代码上传到你想要的路径下。
当然,还有更多命令,例如你想上传或拉取文件目录怎么办?只需要在命令加上-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上传代码,使用起来简单易上手。特别是在项目初期,想立马看到效果时,我会直接使用工具把它拖拽到对应目录。