遇到的问题是 在autoDL的虚拟机上面通过git下载大文件(ChatGLM)的时候经常下载到一半掉线,怀疑是因为ssh断开问题所以找到教程。
教程
解决方法有两个
解决方法1
是nohup命令,但是nohup命令并没有使文件下载完全,感觉nohup命令可能会适合跑代码持续输出的时候的日志输出。
nohup bash hello.sh >hello.log &
解决方法2
使用screen来创造一个虚拟的显示主页,然后再进行操作,推出screen程序会继续执行。
screen -ls #查询已有的screen
echo $STY #查询是否在screen里
screen -r ID #进入screen 以上面为例 screen -r 98396
screen -d ID #退出screen
screen -S your_screen_name -X quit #h删除screen
screen -S your_screen_name #增加新screen
# 按ctrl+a+d 退出screen
但到现在为止都还没有解决,怀疑是虚拟机会各一段时间断网,并不是只断联ssh。
现在换使用huggingface自带的下载方法。
huggingface下载数据集
#使用huggingface_hub,好处是可以看到下载速度,以及过滤不想下载的文件
#下载的文件放在~/.cache/huggingface下,且文件名都被改掉了
from huggingface_hub import snapshot_download
snapshot_download(repo_id="THUDM/chatglm3-6b")
下载还是失败了(但上述方法是可行的,在服务器不会定时断开所有终端的情况下)
报错有 proxy连接达到最大尝试限制(考虑网断了),打算把代理放到永久打开。(screen挂到后台然后http代理持续挂载到网络文件)
代理永久打开
得出结论了,autodl在去网络下载传输的时候就是会隔一段时间给你断开一次··········
端口查杀
端口号命令 kill port
1.Win电脑击杀端口号命令
2.Mac电脑击杀端口号命令
3.Linux击杀端口号进程
速览:(详细操作在下方)
Win: 1. netstat -ano | findstr [端口号] //说明: netstat -ano | findstr用于查找进程
2. taskkill /F /PID [PID] //说明: taskkill /F /PID用于`强制终止`指定PID的进程
Mac: 1. sudo lsof -i tcp: [端口号] //说明: 列出打开TCP端口号(如:80)的进程信息
2. sudo kill -9 [PID] //说明:`强制终止`PID(如:1234)的进程
Linux: 1. sudo lsof -i :[端口号] //说明:显示占用端口号的进程的详细信息,包括进程ID(PID)
2. sudo kill -9 [PID] //说明:`强制终止`PID(如:1234)的进程