服务器使用心路历程

全程按照 GPT 无脑操作

todo

  • 什么是服务器的一个节点

  • 通过不同的端口访问是什么意思,localhost 的实现是什么样的

  • 反向端口连接

  • 如何调整文件系统挂载点

服务器连接

ssh username@server_address -p <port_number>

默认的端口是 22,如果你用的端口是 22,那么 -p <port_number> 这部分可以省去

下面是一些可能遇到的问题,以及一些可能的解决方案,当然也可以通过询问大模型获得更详细的说明

  1. 服务器密码很繁琐,不想每次输入

    解决方法

    ssh 连接有密码,密码是随机字符串,如果不想重复输入,可以考虑配置 ssh 秘钥,指令如下:

    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    

    这会在你的主目录下生成一个 SSH 密钥对(通常在 ~/.ssh/ 中)。然后,你可以将公钥 id_rsa.pub 复制到服务器。

    ssh-copy-id username@server_address
    

    这样就不用再每次输入密码了。

  2. 长时间不操作导致连接断开

    可能的解决方案

    我们发现有的时候如果长时间不操作服务器,我们和服务器的链接就会断开。

    如果你是在 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 的最后一个字符是 / 那么会传到这个文件夹下。


也可以把服务器上的文件拷贝下来,做法类似,详询大模型。

一些常见终端命令

  1. 查看文件大小 du

    一般操作:du -h 把当前文件夹中所有的文件(包括子文件夹中的所有文件,递归地)的大小显示出来,-h 表示显示成常见的 kb mb gb 的格式,否则结果是若干 b,非常不易读。

    如果当前文件夹以及其子文件夹一共有很多很多文件,可你只想知道当前目录每个文件的大小,可以设置 --max-depth 参数,样例是 du -h --max-depth=1

  2. nvidia-smi

    查看 GPU 使用情况,不多说

  3. 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
    

    各列的含义是:

    1. Filesystem: 文件系统名称(例如 /dev/sda1 是一个磁盘分区)。
    2. Size: 文件系统的总大小。
    3. Used: 已使用空间。
    4. Avail: 剩余可用空间。
    5. Use%: 使用百分比。
    6. Mounted on: 文件系统挂载点。

    这个文件系统名称里面有一个 tmpfs,它的含义似乎有点意思,等等学学。

  4. ps aux

    查看所有进程

  5. ps aux | grep < keyword >

    查看包含 keyword 的进程,我感觉是将所有进程的内容和 keyword 做字符串匹配。比方说 ps aux | grep yspm 这条命令,也会将所有用户 yspm 的 ongoing 进程显示出来

    之前用的都是 ps aux | grep python

  6. 调整文件系统的挂载点

    我其实使用我自己的 ubuntu 的时候也遇到了类似的问题。好比 windows 中有 C D E F 盘,安装软件的时候默认装到 C 盘上。C 盘剩余空间终有被用完的一天,所以在安装软件时注意选择存储路径是一件蛮重要的事情。

    ubuntu 装系统的时候会出现让你考虑每个文件系统的挂载点(当时太憨憨了不知道是什么意思)。如果尘埃落定后要调整(例如增大一个文件系统的存储量),会有文件丢失的问题(在磁盘上相邻的位置,可能属于另一个文件系统,这个文件系统也会有一些文件),解决起来不简洁。

    不过现在似乎没有这个问题了,于是做法鸽到以后写。

踩过的坑以及可能的解决方案

  1. 【2024 上半年】跑一个要运行很久的代码,因为 ssh 连接在长时间不操作的情况下会自动断掉,于是这个代码没跑完,也没存中间过程,几小时白跑了。

    解决方案:挂后台 (nohup

  2. 【2024 上半年】有一个文件传输速度的问题,比如你现在有个内含 10000 个文件的文件夹,如果你直接 scp 文件夹,那么可能不如你本地压缩,上传后解压缩快。

  3. 【2024 上半年】2. 【2024-11-20】今天上传 qwen2-7B 的模型参数一直传个 1.4 G 就 fail, GPT 给分析了一下原因,其中一条是服务器存储空间不够了。调查了一下发现确实是这样。

    当时还按照 GPT 的指令尝试了 scp -C 等命令,但是一概失败,于是只好试着去看是不是存储空间不够了

posted @   没学完四大礼包不改名  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示