以下说的指令都是通过代码来执行的指令,所以不能存在任何需要手动输入的东西(比如密码)。可以通过 sshpass
来省去输入过程。但sshpass
有安全风险,所以默认是没安装的,需要在服务器上手动安装。
1. 打包代码
tar -cvjf 包名 要打包的文件
# 举例
# 打包某目录下的所有 lua 文件
tar -cvjf /tmp/demo1.tar.bz2 /your/code/*.lua
# 打包某目录下的所有文件,但排除部分目录和文件
tar -cvjf /tmp/demo2.tar.bz2 /your/code/* --exclude={.*,*.{c,h,hpp,cpp,md,o.txt,exe},Makefile,syslog,doc,3rd/skynet/{test,examples,3rd,*-src}}
注:Mac 系统的 tar 行为和 Linux 不太一样,上述指令不保证在 Mac 下正常工作。
2. 解包代码
tar -xvjf 包名 -C 输出目录
注:必须保证输出目录存在,否则解包失败
# 举例
# 解压到当前目录
tar -xvjf /your/demo1.tar.bz2
# 解压到指定目录
tar -xvjf /your/demo2.tar.bz2 -C /your/code
3. 在服务器上执行指令
3.1 无跳板机执行
sshpass -p 密码 ssh -p 端口 用户名@IP '要执行的指令'