代码同步 开发机配置方式一:写一个py脚本(推荐) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 # -*- coding: UTF-8 -*- import sys import os # 添加pyftpdlib安装路径到Python路径 sys.path.append('/home/opt/deck/1.0/python/2.7.17/lib/python2.7/site-packages') from pyftpdlib.authorizers import DummyAuthorizer from pyftpdlib.handlers import FTPHandler from pyftpdlib.servers import FTPServer def main(): # 初始化验证器 authorizer = DummyAuthorizer() # 创建有读写权限的用户和只读权限的匿名用户 authorizer.add_user('dongjiaqi04', 'Weilexierwanasi1', '.', perm='elradfmwMT') # 允许匿名登录,不要允许,安全部会扫描匿名登录! # authorizer.add_anonymous(os.getcwd()) # 实例化 FTPHandler 类 handler = FTPHandler handler.authorizer = authorizer # 自定义提示信息 handler.banner = "pyftpdlib based ftpd ready." # Specify a masquerade address and the range of ports to use for # passive connections. Decomment in case you're behind a NAT. #handler.masquerade_address = '151.25.42.11' handler.passive_ports = range(8300, 8400) # FTP 服务监听于 0.0.0.0:2121 address = ('', 8999) server = FTPServer(address, handler) # 连接限制 server.max_cons = 256 server.max_cons_per_ip = 20 # 开启 FTP 服务 server.serve_forever() if __name__ == '__main__': main()
1 2 3 4 5 6 7 8 9 10 11 12 13 # 启动 nohup python ftp.py & #缺少依赖 # 安装兼容 Python 2.7 的旧版本 pyftpdlib pip install "pyftpdlib<1.6.0" #看一下 netstat -tlnp | grep 8999 ps aux | grep "[p]ython ftp.py" #关闭 pkill -f "python ftp.py"
开发机配置方式二:安装兼容 Python 2.7 的旧版本 pyftpdlib 第二种方法可能是我代码空间权限问题,直接连连不上,而且也不能配置密码和用户,还是推荐方法一。
安装proftpd 具体方法百度或AI。
开发机修改配置文件 大概位置:/etc/proftpd.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ServerName "ProFTPD server" ServerIdent on "FTP Server ready." ServerAdmin root@localhost DefaultServer on DefaultRoot ~ !adm # 用户使用平时通过ssh或者webrelay登陆的用户 User work Group work # 允许从任何IP访问 <Global> <Limit LOGIN> Allow from all AllowUser work </Limit> </Global> Port 8021 # 设置被动模式(PASV)端口范围,公司只允许暴露8000-8999的端口 PassivePorts 8000 8999 # MasqueradeAddress 公网IP #当需要公网访问的时候可以把这个地址填成公网IP,否则proftpd默认会使用内网IP
开发机验证是否配置成功 以此输入
systemctl restart proftpd
ftp localhost 8021
根据提示输入ssh或者webrelay登陆的用户名和密码。
登陆成功后显示如下:
1 2 3 ftp> #执行ls后显示出/home/work目录下的文件,表示成功 ftp> ls
本地验证是否成功 mac上打开终端,依次输入如下命令,进行验证:
1 2 3 4 5 brew install lftp #使用homebrew安装的,如果没有homebrew,先安装homebrew lftp -u work -p 8021 你的虚拟机IP # 密码还是work用户的登录密码。 lftp -u anonymous -p 8021 你的虚拟机IP
登陆成功后显示如下:
1 lftp work@10.118.141.177:~>
输入ls,能够输出正确的文件列表表示成功。
本地goland连接 启动开发机的ftp后,进入goland设置代码同步
先安装这两个插件。
选择工具-部署-配置,设置ftp连接。
配置ftp连接,填自己开发机ip和启动的ftp地址,用户名与密码,测试连接。
设置代码映射
开启自动上传
开启以后手动推送一次,以后执行cmd+s 改动就能自动同步了
一、为什么需要远程调试? 很多时候服务只能运行在Linux环境,或者部署在开发机的情况下,需要在开发时使用远程调试。该功能最好搭配远程ftp服务同步代码
二、安装Delve (世界上最好用的Go语言调试工具) Go的代码调试工具常见的有gdb和dlv。 dlv 是专门针对Go语言设计的调试工具,也是 Goland中内置的代码调试工具,灰常好用。 假设远程主机上已经安装了Go SDK,在远程主机上可以执行以下命令安装dlv调试工具:
1 go install github.com/go-delve/delve/cmd/dlv@latest
三、启动远程调试程序 安装成功dlv后,在远程主机上的程序目录内执行以下命令启动服务,需要注意的是如果程序中有参数,可以在后面加 --然后直接输入程序参数
1 2 3 4 5 #以medask为例 dlv exec --headless --listen=:8345 --api-version=2 --accept-multiclient ./output/bin/ae-app-652 -- -conf ./conf/app.toml # 下面命令中 `--` 后面的参数为 程序的参数,`--` 代表分隔符 dlv debug --headless --listen=:8345 --api-version=2 --accept-multiclient -- -conf ./conf/app.toml
四、在Goland中创建远程调试 配置完成后,点击启动即可
五、使用 配置好之后,远程主机中先执行启动命令,然后本地debug器连接到远程的端口之后,远程机器上才开始执行代码,此时打断点即可进行调试。