由于之前使用Linux服务器的频次较少,最近需要集中使用远程连接的方式训练深度学习模型,因此对用到的Linux环境下的各种工具的指令做一个详细的记录。
本文场景是使用Windows端的MobaXterm远程连接Linux服务器。
Linux系统
以下几条指令主要是在配置环境时用到。
- 获取动态ip: curl -sS ifconfig.me
- 查看GPU状态: nvidia-smi
- 查看cuda版本: nvcc --version
- 查看ubuntu版本: cat /proc/version
- 查看torch版本: torch.__version
SSH
不论是在Pychram、cmd还是在MobaXterm中访问服务器时都需要这条指令
ssh -p [port] [usrname]@[IP]
conda虚拟环境
大部分缺少的包都可以在虚拟环境中使用这条指令安装
pip install pkg_name
如果提示版本问题,则需要执行更新指令
pip install pkg_name --upgrade
(1) 创建conda虚拟环境
conda create -n [envname] python=x.x
(2) 进入和退出conda虚拟环境
conda activate [envname]
conda deactivate
Visdom
原来在本地主机上运行代码时,只需要开启visdom,再访问localhost:8097即可,但现在visdom需要在远程服务器上开启,并通过ssh映射到本地的端口。(这一段描述的可能并不准确,大致是这个意思)
(1) 打开本机cmd通过以下指令访问远程服务器
ssh -L 18097:本机IP:8097 -p [远程port] [usrname]@[IP]
(2) 切换到运行代码的虚拟环境
conda activate [envname]
(3) 启动visdom
python -m visdom.server
(4) 在本机浏览器上通过http://localhost:18097/访问
(5) 停止visdom
在root界面
sudo lsof -i:8097
sudo kill -9 PID
后台运行指令Screen
由于模型训练的时间比较久,各个远程连接方式隔一段时间都会中断,需要将程序以后台方式运行,这里用到的是Screen指令。
(1) 远程连接
ssh -p [port] [usrname]@[IP]
(2) 重起一个screen
screen -S [name]
(3) 查看服务器中存在的screen
screen -ls
(4) 通过返回的编号访问screen
screen -r [id]
(5) 如果中途断网需要先退出再重连
退出 screen -d [id]
重连 screen -r [id]
(6) 关闭当前screen
先按下 Ctrl + A, 再输入 K 键
Script指令
由于连接可能中断,即便以后台形式运行,但依然会丢失运行时输出的信息,因此找到Script这一工具将指令和显示的数据都记录log文件中。
script命令
(1) 启动并指定保存的文件名
script -f xxx.log (-f强制记录,不需要exit也可记录)
追加记录 script -a -f xxx.log
(2) 动态记录,保存时序信息
script -tscript_time.time script_time.log
(3) 退出
exit
(4) 回放
scriptreplay -t script_time.time -s script_time.log
其他
查看当前目录下文件size
du -sh
查看记录日志
cat [path]