常用看端口占用/调用的命令如下。
macOS / Linux
查看某端口被谁占用:
lsof -i :5200
更详细:
lsof -nP -iTCP:5200 -sTCP:LISTEN
查看所有监听端口:
lsof -nP -iTCP -sTCP:LISTEN
用 ss 查看:
ss -lntp
查看 5200:
ss -lntp | grep 5200
杀掉占用端口的进程:
kill -9 <PID>
测试端口能不能访问
本机测试 HTTP 服务:
curl http://localhost:5200
FastAPI 常测:
curl http://localhost:5200/docs
测试端口连通性:
nc -vz localhost 5200
最常用组合
lsof -i :5200
kill -9 <PID>
uvicorn app.main:app --host 0.0.0.0 --port 5200
核心:lsof 查谁占用,kill 结束进程,curl 测服务是否可访问。
rsync同步
基本格式:
rsync [选项] 源路径 目标路径
常用选项:
-a 归档模式,保留目录结构、权限、时间等
-v 显示详细过程
-z 传输时压缩
-P 显示进度,并支持断点续传
--delete 删除目标中源目录没有的文件,使两边完全一致
--exclude 排除某些文件或目录
-n dry-run,只预演,不真正执行
常用安全写法是先 dry-run:
rsync -avzP -n ./project/ 5090:/home/monte/project/
确认输出没问题后去掉 -n:
rsync -avzP ./project/ 5090:/home/monte/project/
最常用写法:
rsync -avzP 本地目录 用户名@服务器IP:远程目录
例如,把本地 project 传到服务器:
rsync -avzP ./project/ ubuntu@1.2.3.4:/home/ubuntu/project/
如果配置了ssh config
ssh 5090
那 rsync 就可以这样用:
rsync -avzP ./local_dir/ 5090:/remote_dir/
例如同步当前项目到服务器:
rsync -avzP ./project/ 5090:/home/ubuntu/project/
从服务器拉回来:
rsync -avzP 5090:/home/ubuntu/project/ ./project/