服务器使用心路历程
全程按照 GPT 无脑操作
todo
-
什么是服务器的一个节点
-
通过不同的端口访问是什么意思,localhost 的实现是什么样的
-
反向端口连接
-
如何调整文件系统挂载点
服务器连接
ssh username@server_address -p <port_number>
默认的端口是 22,如果你用的端口是 22,那么 -p <port_number> 这部分可以省去
下面是一些可能遇到的问题,以及一些可能的解决方案,当然也可以通过询问大模型获得更详细的说明
-
服务器密码很繁琐,不想每次输入
解决方法
ssh 连接有密码,密码是随机字符串,如果不想重复输入,可以考虑配置 ssh 秘钥,指令如下:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
这会在你的主目录下生成一个 SSH 密钥对(通常在
~/.ssh/
中)。然后,你可以将公钥id_rsa.pub
复制到服务器。ssh-copy-id username@server_address
这样就不用再每次输入密码了。
-
长时间不操作导致连接断开
可能的解决方案
我们发现有的时候如果长时间不操作服务器,我们和服务器的链接就会断开。
如果你是在 vscode 上使用服务器,在配置文件中加入下边内容中最后一行,它的意思是每 60 秒对服务器进行一些激活操作
Host < ip_address > HostName < ip_address > User < username > Port < port_number > ServerAliveInterval 60
网络访问
反向端口连接,以后写。
到时候可能把计算机网络的一些概念系统总结一下
文件传输
scp -r local_file_path username@server_address:remote_file_path
我的理解这个 remote_file_path 是确认到名称的,也就是说,传到服务器上会变成这个名字的东西。也可能是如果服务器上有这个名字的文件夹,remote_file_path 的最后一个字符是 / 那么会传到这个文件夹下。
也可以把服务器上的文件拷贝下来,做法类似,详询大模型。
一些常见终端命令
-
查看文件大小 du
一般操作:
du -h
把当前文件夹中所有的文件(包括子文件夹中的所有文件,递归地)的大小显示出来,-h 表示显示成常见的 kb mb gb 的格式,否则结果是若干 b,非常不易读。如果当前文件夹以及其子文件夹一共有很多很多文件,可你只想知道当前目录每个文件的大小,可以设置 --max-depth 参数,样例是
du -h --max-depth=1
-
nvidia-smi
查看 GPU 使用情况,不多说
-
df -h
查看存储空间,-h 含义同上。
输出是:Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 20G 30G 40% / tmpfs 16G 0 16G 0% /dev/shm /dev/sdb1 100G 60G 40G 60% /data
各列的含义是:
- Filesystem: 文件系统名称(例如
/dev/sda1
是一个磁盘分区)。 - Size: 文件系统的总大小。
- Used: 已使用空间。
- Avail: 剩余可用空间。
- Use%: 使用百分比。
- Mounted on: 文件系统挂载点。
这个文件系统名称里面有一个 tmpfs,它的含义似乎有点意思,等等学学。
- Filesystem: 文件系统名称(例如
-
ps aux
查看所有进程
-
ps aux | grep < keyword >
查看包含 keyword 的进程,我感觉是将所有进程的内容和 keyword 做字符串匹配。比方说 ps aux | grep yspm 这条命令,也会将所有用户 yspm 的 ongoing 进程显示出来
之前用的都是 ps aux | grep python
-
调整文件系统的挂载点
我其实使用我自己的 ubuntu 的时候也遇到了类似的问题。好比 windows 中有 C D E F 盘,安装软件的时候默认装到 C 盘上。C 盘剩余空间终有被用完的一天,所以在安装软件时注意选择存储路径是一件蛮重要的事情。
ubuntu 装系统的时候会出现让你考虑每个文件系统的挂载点(当时太憨憨了不知道是什么意思)。如果尘埃落定后要调整(例如增大一个文件系统的存储量),会有文件丢失的问题(在磁盘上相邻的位置,可能属于另一个文件系统,这个文件系统也会有一些文件),解决起来不简洁。
不过现在似乎没有这个问题了,于是做法鸽到以后写。
踩过的坑以及可能的解决方案
-
【2024 上半年】跑一个要运行很久的代码,因为 ssh 连接在长时间不操作的情况下会自动断掉,于是这个代码没跑完,也没存中间过程,几小时白跑了。
解决方案:挂后台 (
nohup
) -
【2024 上半年】有一个文件传输速度的问题,比如你现在有个内含 10000 个文件的文件夹,如果你直接 scp 文件夹,那么可能不如你本地压缩,上传后解压缩快。
-
【2024 上半年】2. 【2024-11-20】今天上传 qwen2-7B 的模型参数一直传个 1.4 G 就 fail, GPT 给分析了一下原因,其中一条是服务器存储空间不够了。调查了一下发现确实是这样。
当时还按照 GPT 的指令尝试了 scp -C 等命令,但是一概失败,于是只好试着去看是不是存储空间不够了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律