Nightmare4214 / server-config

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

服务器配置

装机

制作u启

下载镜像

下载ultraiso

文件->打开->选择镜像
open_iso

启动-> 写入硬盘映像
open_iso2

选择你的u盘,写入
open_iso3

安装系统

重启,按f10进入bios(不同机子进入bios方式不同,比如我这里是f2/del)
install1

在boot里,把你的u盘放第一个,然后save & exit
install2

ubuntu

选Ubuntu(safe graphics) install3
选English,然后Install Ubuntu
install4
选English,然后continue
install5
选Minimal installation, 勾下面的install third-party
install6
这里可以先选择erase disk来格式化,然后continue,再back,接着选Something else
install7

通过减号,使得一个盘只剩一个free space, 如果是新的盘,需要先new partition
install8

点击加号,分配swap,一般分配2倍内存
install9 点击加号,分配efi,2g就够了
install10
点击加号,分配boot,2g就够了
install11
剩下的给root
install12
点击安装

后续步骤就一路continue就行

最后安装好了会提示你拔了u盘,再点击重启

ubuntu换源

原blog

ustc:https://mirrors.ustc.edu.cn/help/ubuntu.html

修改/etc/apt/sources.list为下面的内容
其中,jammy表示ubuntu22,focal表示ubuntu20,bionic表示ubuntu18
注意修改jammy

# 默认注释了源码仓库,如有需要可自行取消注释
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse

deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-security main restricted universe multiverse

deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse

deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse

然后更新

sudo apt update && sudo apt -y upgrade

NVIDIA驱动

nvidia驱动

卸载原来的

sudo apt-get update
sudo apt-get remove --purge nvidia*
 
# 如果有以前的版本,那就卸载
sudo chmod +x *.run
sudo ./NVIDIA-Linux-x86_64-384.59.run --uninstall

禁用nouveau驱动

sudo nano /etc/modprobe.d/blacklist.conf

在最后添加

blacklist nouveau
options nouveau modeset=0

保存,退出

输入

sudo update-initramfs -u

重启

输入

lsmod | grep nouveau

如果什么都没有输出,则代表禁用nouveau驱动成功

禁用X-Window服务

sudo service lightdm stop

安装gcc,dkms

sudo apt-get install build-essential dkms -y

安装驱动

sudo chmod +x NVIDIA-Linux-x86_64-410.104.run
sudo ./NVIDIA-Linux-x86_64-410.104.run -no-nouveau-check -no-opengl-files

如果显示32位,那不要装
如果提出x服务,可以不装
其他的选ok就行

测试

nvidia-smi

cuda

cuda

选择好了之后,执行红色箭头这一句,或者浏览器下载也行(不要执行后面的sh)

cuda

sudo chmod a+x cuda_11.7.1_515.65.01_linux.run
sudo ./cuda_11.7.1_515.65.01_linux.run --no-opengl-lib

中间把drive的勾去掉,其他默认 cuda2

sudo nano ~/.bashrc

在末尾添加

export CUDA_HOME=/usr/local/cuda-11.7
export LD_LIBRARY_PATH=/usr/local/cuda-11.7/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-11.7/bin:$PATH

保存退出

source ~/.bashrc

测试

nvcc -V

cudnn

cudnn

下linux_x86_64
cudnn

tar -zxvf cudnn-10.0-linux-x64-v7.5.0.56.tgz
 
sudo cp cuda/include/*.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/*.h /usr/local/cuda/lib64/libcudnn*
sudo ldconfig

如果提示xxx is not a symbolic link
注意修改下面的路径,分别要改cuda-11.2,so.8.1.1

sudo ln -sf /usr/local/cuda-11.2/targets/x86_64-linux/lib/libcudnn.so.8.1.1 /usr/local/cuda-11.2/targets/x86_64-linux/lib/libcudnn.so.8
sudo ln -sf /usr/local/cuda-11.2/targets/x86_64-linux/lib/libcudnn_adv_train.so.8.1.1 /usr/local/cuda-11.2/targets/x86_64-linux/lib/libcudnn_adv_train.so.8
sudo ln -sf /usr/local/cuda-11.2/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8.1.1 /usr/local/cuda-11.2/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8
sudo ln -sf /usr/local/cuda-11.2/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8.1.1 /usr/local/cuda-11.2/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8
sudo ln -sf /usr/local/cuda-11.2/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8.1.1 /usr/local/cuda-11.2/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8
sudo ln -sf /usr/local/cuda-11.2/targets/x86_64-linux/lib/libcudnn_ops_train.so.8.1.1 /usr/local/cuda-11.2/targets/x86_64-linux/lib/libcudnn_ops_train.so.8
sudo ln -sf /usr/local/cuda-11.2/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8.1.1 /usr/local/cuda-11.2/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8

自动联网

linux

sudo apt-get install net-tools cron curl -y

编写脚本

nano ~/test.sh

修改用户名密码

#!/bin/bash

USER_NAME="your username"
PASSWORD="your password"
SERVICE="internet"

# Returns a string in which all non-alphanumeric characters except -_.~ have
# been replaced with a percent (%) sign followed by two hex digits.
#
# Example
# -------
#     easier:    echo http://url/q?=$( rawurlencode "$args" )
#     faster:    rawurlencode "$args"; echo http://url/q?${REPLY}

rawurlencode() {
    local string="${1}"
    local strlen=${#string}
    local encoded=""
    local pos c o

    for (( pos=0 ; pos<strlen ; pos++ )); do
        c=${string:$pos:1}
        case "$c" in
           [-_.~a-zA-Z0-9] ) o="${c}" ;;
           * )               printf -v o '%%%02x' "'$c"
        esac
        encoded+="${o}"
    done
    echo "${encoded}"    # You can either set a return variable (FASTER) 
    REPLY="${encoded}"   #+or echo the result (EASIER)... or both... :p
}

USER_NAME=`rawurlencode \`rawurlencode $USER_NAME\``
PASSWORD=`rawurlencode \`rawurlencode $PASSWORD\``
SERVICE=`rawurlencode \`rawurlencode $SERVICE\``

while true
do
    captiveReturnCode=`curl -s -I -m 10 -o /dev/null -s -w %{http_code} http://www.google.cn/generate_204`
    if [ "${captiveReturnCode}" = "204" ]; then
        echo `date`
        echo "You are already online!"
        sleep 60
        continue
    fi

    loginPageURL=`curl -s "http://www.google.cn/generate_204" | awk -F \' '{print $2}'`
    
    loginURL=`echo ${loginPageURL} | awk -F \? '{print $1}'`
    loginURL="${loginURL/index.jsp/InterFace.do?method=login}"
    
    queryString=`echo ${loginPageURL} | awk -F \? '{print $2}'`
    queryString=`rawurlencode \`rawurlencode $queryString\``

    if [ -n "${loginURL}" ]; then
      authResult=`curl -s -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.91 Safari/537.36" -e "${loginPageURL}" -b "EPORTAL_COOKIE_USER_NAME=; EPORTAL_COOKIE_PASSWORD=; EPORTAL_COOKIE_SERVER=; EPORTAL_COOKIE_SERVER_NAME=; EPORTAL_AUTO_LAND=; EPORTAL_USER_GROUP=; EPORTAL_COOKIE_OPERATORPWD=;" -d "userId=${USER_NAME}&password=${PASSWORD}&service=${SERVICE}&queryString=${queryString}&operatorPwd=&operatorUserId=&validcode=&passwordEncrypt=false" -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8" -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" "${loginURL}"`
        echo `date`
        echo $authResult
    fi
    unset loginURL
    sleep 20
done

保存退出

chmod a+x ~/test.sh

执行(注意修改test.sh和test.log的路径)

nohup bash /home/icml007/test.sh >/home/icml007test.log 2>&1 &

开机时启动脚本

crontab -e

第一次输入这个命令回让你选择编辑器

script

在最后面添加(注意修改test.sh和test.log的路径)
这条命令表示开机/重启时在后台执行test.sh,所有输出都输出到test.log

@reboot nohup bash /home/icml007/test.sh >/home/icml007/test.log 2>&1 &

conda 换源

原blog

conda config --set show_channel_urls yes

win修改C:/Users/XXX/.condarc
linux修改~/.condarc

直接修改

channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.bfsu.edu.cn/anaconda/pkgs/main
  - https://mirrors.bfsu.edu.cn/anaconda/pkgs/r
  - https://mirrors.bfsu.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.bfsu.edu.cn/anaconda/cloud
  msys2: https://mirrors.bfsu.edu.cn/anaconda/cloud
  bioconda: https://mirrors.bfsu.edu.cn/anaconda/cloud
  menpo: https://mirrors.bfsu.edu.cn/anaconda/cloud
  pytorch: https://mirrors.bfsu.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.bfsu.edu.cn/anaconda/cloud
# (option begin
create_default_packages:
  - pip
  - setuptools
#  option end)

最后

conda clean -i

pip 换源

原blog

python -m pip install --upgrade pip
pip config set global.index-url https://mirrors.bfsu.edu.cn/pypi/web/simple

git dns

windows的host在C:\Windows\System32\drivers\etc\host
linux的host在/etc/hosts

把下面这段复制到host里(windows可以考虑用vscode修改)

140.82.114.3  github.com
108.160.167.165 github.global.ssl.fastly.net
185.199.110.153 assets-cdn.github.com

linux下可以选择

sudo sh -c 'sed -i "/# GitHub520 Host Start/Q" /etc/hosts && curl https://raw.hellogithub.com/hosts >> /etc/hosts'

接着刷新dns
windows

ipconfig /flushdns

linux

sudo apt install nscd
sudo systemctl restart nscd

无法访问微软商店

可以先试试把代理工具关了

如果不行 win+r, 输入inetcpl.cpl 勾上TLS 1.1,TSL1.2

internet attribute

字体

下载下面这4个
MesloLGS NF Regular.ttf
MesloLGS NF Bold.ttf
MesloLGS NF Italic.ttf
MesloLGS NF Bold Italic.ttf

win可以直接安装
linux

sudo apt-get install ttf-mscorefonts-installer fontconfig -y

在字体所在目录打开终端

sudo mkdir -p /usr/share/fonts/MesloLGS
sudo cp *.ttf /usr/share/fonts/MesloLGS
sudo chmod -R 777 /usr/share/fonts/MesloLGS

sudo fc-cache -fv

terminal

在微软商店

win_terminal

添加conda

打开windows terminal
设置里
在这里插入图片描述
添加新配置文件->新建空配置文件
在这里插入图片描述 名称:Anaconda 命令行

%windir%\System32\cmd.exe "/K" D:\Miniconda3\Scripts\activate.bat D:\Miniconda3

可以从这里抄 在这里插入图片描述
在这里插入图片描述
图标

D:\Miniconda3\Lib\site-packages\conda\shell\conda_icon.ico

保存 在这里插入图片描述

在这里插入图片描述

添加git

打开安装包(不用卸载之前的)
其他的默认就行
在这里插入图片描述
重新打开windows terminal
在这里插入图片描述
如果没有也可以手动配置
在这里插入图片描述

修改字体

建议改成MesloLGS NF

在这里插入图片描述

zsh

原blog

修改字体

安装字体

点终端的preferences
在这里插入图片描述
修改字体
在这里插入图片描述

安装

sudo apt-get install -y zsh git-core
git clone https://github.com/ohmyzsh/ohmyzsh.git ~/.oh-my-zsh
cd ~/.oh-my-zsh
zsh oh-my-zsh.sh
chsh -s `which zsh`

重启

打开终端
选择0
在这里插入图片描述

cp ~/.zshrc ~/.zshrc.orig
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
chsh -s $(which zsh)

然后

source ~/.zshrc

不过zsh和平常的环境有一点差别,具体的可以看下面

conda

如果你有配置conda,可能会发现没有前面的(base)了

前面是conda所在的路径,记得修改

~/miniconda3/bin/conda init zsh
source ~/.zshrc

设置更新时间

nano ~/.zshrc

这里根据提示,然后去掉注释 在这里插入图片描述 保存,退出 然后

source ~/.zshrc

cuda

如果你装了cuda
可以从~/.bashrc中复制这3句到 ~/.zshrc
在这里插入图片描述
保存,退出
然后

source ~/.zshrc

powerlevel10k主题

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
nano ~/.zshrc

修改

ZSH_THEME="powerlevel10k/powerlevel10k" 

在这里插入图片描述 保存,退出
然后

source ~/.zshrc

然后会叫你设置主题,可以根据自己的喜好设置

设置完了以后想改,可以用这个命令重新设置

p10k configure

其余插件

分别是自动补全,语法高亮

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
nano ~/.zshrc

改这
把zsh-autosuggestions添加上去
把zsh-syntax-highlighting添加上去
在这里插入图片描述
保存,退出
然后

source ~/.zshrc

手动更新

omz update

tmux

原blog

sudo apt-get install -y tmux git
cd ~
git clone https://github.com/gpakosz/.tmux.git
ln -s -f .tmux/.tmux.conf
cp .tmux/.tmux.conf.local .

常用命令

<prefix>表示ctrl+a或者ctrl+b
<prefix> c表示ctrl+a或者ctrl+b,然后按c
<prefix> C-c表示ctrl+a或者ctrl+b,然后按ctrl+c

会话

创建一个名为session_name的会话

tmux new -s session_name

列出所有会话

tmux ls

进入已经创建好的名为session_name的会话

tmux attach -t session_name

销毁会话

tmux kill-session -t session_name

panes

起到一个终端中,分屏的作用

<prefix> -垂直划分pane
<prefix> _水平划分pane
<prefix> arrow切换pane,arrow表示方向键
<prefix> m开/关鼠标模式
C-d关闭pane,当最后一个没了的话,就会关闭整个会话
<prefix> :进入命令模式(类似vim),输入detach可以退出会话,但是不关闭
<prefix> C-arrow改变pane大小,arrow表示方向键
鼠标模式下,直接拖动边框也可以改变pane大小

效果
在这里插入图片描述

windows

一个session中可以有多个windows,相当于win的桌面1,桌面2...

<prefix> c创建window <prefix> n跳转第n个window <prefix> &退出当前window, 也可以输入exit <prefix> :,输入move-window -t session_name可以将当前window移动到session_name里

更多命令参考: tmux2: Productive Mouse-Free Development

输出历史命令

<prefix> :,输入capture-pane -S -3000,其中3000表示3000行 接着,<prefix> :,输入save-buffer filename,命令就会存储到filename里

ssh

原blog

本地配置

如果你的用户是中文(比如某师兄),那就执行这个

win+r,输入

intl.cpl

勾上UTF-8
ssh2.png

在git里,选zh_cn和UTF-8

ssh3.png

服务器配置ssh

如果没有ifconfig

sudo apt-get install net-tools

然后

ifconfig

在这里插入图片描述

sudo apt-get install -y openssh-client openssh-server

设置开机启动

sudo systemctl enable ssh

修改配置

sudo nano /etc/ssh/sshd_config

添加一行

PermitRootLogin yes

在这里插入图片描述

sudo systemctl restart ssh

本地远程

ssh username@remote_ip_address

免密登录

按照上面的步骤会发现每次都需要输入密码,这里通过生成密钥来解决

在本地生成密钥
可以考虑用git bash

ssh-keygen -t rsa
# ⽣成 id_rsa 和 id_rsa.pub, 并且⼀般存储在 ~/.ssh/下
ssh-keygen -b 4096 -t rsa
# 这个则是更安全的版本

第一个:key存储位置
第二个:私钥密码,默认无密码,如果设置了私钥密码,在进行免密登录时需要输入私钥密码
第三个:再输入一遍私钥密码

我这里是全默认
key

ssh-copy-id username@remote_ip_address

在这里插入图片描述

如果有权限问题,可以考虑执行下面这个

sudo chmod 700 .ssh
sudo chmod 600 .ssh/authorized_keys

vscode

安装插件
在这里插入图片描述
点击左侧远程,然后ssh的设置
在这里插入图片描述
接着选user下的
在这里插入图片描述
接着配置

Host 任意名字
    HostName 远程ip
    User 远程用户名

我这里配了2个
在这里插入图片描述
刷新一下
在这里插入图片描述
连接
在这里插入图片描述
选择项目
在这里插入图片描述
这个选则相信
在这里插入图片描述
之后这里修改,远程也会改

tensorboard

tensorboard --logdir="xxx" --host remote_ip

在这里插入图片描述
然后在本地输入最后显示的网址就能访问了
在这里插入图片描述

文件复制

rsync -av -r --exclude preTraModel --exclude wandb --exclude workspace  ../xmuda_mink_Contrast_DDP_DM  user8@10.24.80.68:/data3/user8/xmuda_series


rsync -av -r --exclude preTraModel --exclude wandb --exclude workspace  ../GeneralizedLoss-Counting-Pytorch-semi  另一台服务器用户名@另一台服务器IP地址:/另一台服务器存储地址

gpu状态

pip install gpustat

可以用这个命令来查看gpu状态

watch -c -n1 gpustat -cpu --force-color -P

为了方便,也可以起别名

alias watch='watch -c -n1 gpustat -cpu --force-color -P'
alias cls='clear'

autojump

git clone git://github.com/wting/autojump.git ~/autojump
cd ~/autojump
python install.py

关闭terminal,然后在开一个

zsh

nano ~/.zshrc

plugins中添加autojump

然后在下面额外加一句

[[ -s ~/.autojump/etc/profile.d/autojump.sh ]] && . ~/.autojump/etc/profile.d/autojump.sh

autojump

保存,退出

source ~/.zshrc

vim

sudo apt-get install vim -y

配置

vim ~/.vimrc

输⼊下列参数,保存即可,默认C语⾔代码可以按control+p补全关键字

syntax on
set number
set cindent
set smartindent
set showmatch
set ruler
:set mouse=a

jupyter

<7是因为后面的插件目前不支持7

pip install jupyter 'notebook<7'

设置密码

jupyter notebook password

文件在~/.jupyter/jupyter_server_config.json

生成配置文件

jupyter notebook --generate-config --allow-root

修改生成的配置文件
(有的版本不是ServerApp, 而是Notebook)

c.ServerApp.allow_root = True
c.ServerApp.ip = '*'
c.ServerApp.password = 'xxxx'
c.ServerApp.port = 8888
c.ServerApp.notebook_dir = ''
c.ServerApp.open_browser = False
c.ServerApp.disable_check_xsrf = True
c.ServerApp.allow_origin = '*'
c.ServerApp.allow_remote_access = True

保存

启动

jupyter notebook --allow-root

插件

安装

pip install --upgrade jupyterlab jupyterlab-pygments 'nbconvert>=7' 'mistune>=2'
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
conda install nb_conda

frpc[公网链接:在家也可以炼实验室的丹了]

应用场景

我们使用ssh链接实验室的机器的时候,一般在实验室内部使用的同一个局域网连接,一般使用的是192.168.xx.xx的网络,但是如果我们在家里,使用的家里的网络也想连接实验室的机器的话,那么就需要一个tcp的转接服务器才可以。frpc就是这样一个免费的转接服务器,他使用自己的域名,转发tcp或者http请求,使得我们可以链接到实验室内部的机器的指定的端口的程序。

【当然不限于ssh,它只是转发端口的请求,重要的是绑定的端口号。】比如说

  • 在windows上绑定3306端口,那么就可以实现windows的远程桌面程序,在家里就可以远程实验室机器的图形界面...再也不用担心todesk奇葩的网速了

  • 绑定tensorBoard的发射端口6006,那么在家里就可以浏览炼丹的最新进度

  • ...

准备工具

OpenFRPC 这个网速更快
还有其他的免费工具,比如花生壳

这是两个免费提供FRPC功能的平台,它是可以提供免费的转接流量,每天签到会送流量,每天大概是4GB的流量。我们以OpenFRPC为例,构建我们的公网链接

构建步骤

注册账号

OpenFRPC 注册,一般需要实名认证

创建隧道

1690437518527

获取这个隧道的配置文件

1690437650217

1690437719626

下载登录器程序

这个程序下载到需要转发ssh端口的服务器上
1690438137275

配置和启用转发程序

本质上启动的时候是: frpc程序 + 一个配置文件 =就可以启动一个隧道,推送指定端口的tcp请求

windows
  • windows平台可以下载那个win启动器,这个启动器是包含登录和frpc功能的一个ui式exe程序,下载完毕之后直接安装,然后登录OpenFRPC的账号密码,在程序内部直接启动,frpc隧道就可以了。
  • 当然也可以直接下frpc启动器,对应的是windows系统的那个标签下的下载文件,这个文件本意上是需要用户设置服务程序的。大致步骤其实和Linux机器的差不多。
Linux机器【举例】
  1. 下载程序文件到机器上

    1690439044681

    这是我自己的机器上下载好的/usr/local/bin/frpc_linux_amd64启动器,注意给定的可以执行权限

    chmod 777 frpc_linux_amd64

    frps是NetFRPC的启动器,后面跟着是它的配置文件。

  2. 每一隧道需要一个单独的配置文件,文件名可以随意起,我有两个隧道,所以有两个配置文件。

    frpc-ssh.ini #就是一个隧道的配置文件
  3. 编写配置文件

    将这个配置文件中的内容复制进去
    1690437719626
    假如说你的配置文件是/usr/local/bin/frpc-ssh.ini, 那么复制进去就会像这样
    1690439664200

  4. 配置服务,可以让它开机启动

    服务就是一个启动脚本,名字可以随意起,但是需要把文件创建在/etc/systemd/system目录下
    我的服务是/etc/systemd/system/frpc-ssh.service

    下面是这个服务文件的内容,注意修改里面的启动文件路径和启动配置文件路径

    [Unit]
    # 服务名称,可自定义
    Description = frpc-ssh-server
    After = network.target syslog.target
    Wants = network.target
    
    [Service]
    Type = simple
    # 启动frpc的命令,需修改为您的frpc的安装路径 -c 后面紧跟着的是启动配置文件的路径
    ExecStart =/usr/local/bin/frpc_linux_amd64 -c /usr/local/bin/frpc-ssh.ini
    
    [Install]
    WantedBy = multi-user.target
    
  5. 启动隧道服务

    sudo systemctl start frpc-ssh.service
    sudo systemctl enable frpc-ssh.service 
    sudo systemctl status frpc-ssh.service

    1690441256433

    看到服务运行正常,启动器的输出无报错。就算是隧道启动成功。不成功,可能你需要回头检查检查哪里出错了。

  6. 服务使用的命令样例

    sudo systemctl start frpc-ssh.service #  启动frpc-ssh服务
    sudo systemctl enable frpc-ssh.service #设置 frpc-ssh.service为开机启动
    sudo systemctl status frpc-ssh.service # 查看服务启动状态和日志
    sudo systemctl restart frpc-ssh.service # 重启服务
    sudo systemctl stop frpc-ssh.service # 停止服务

使用

1690441854158
1690441886716
找到你刚才启动的隧道,查看这里的链接地址就可以实现ssh远程登录了
1690441978268
我使用的是xshell登录ssh,填写主机地址和远程端口,这样就可以链接你刚才的主机了。
1690442093976

也可以使用ssh,其中连接地址不包括端口

ssh 用户名@连接地址 -p 端口

也可以使用vscode远程主机,这样就可以在家里调试代码,修改程序了。非常的流畅
1690442278570
1690442720458

wandb

原blog

联网

wandb注册
在User Settings中找到自己的API keys

在本地登录, 会让你输入api key

wandb login

示例代码

#!/usr/bin/env python
# _*_ coding:utf-8 _*_
import os
import wandb

data_save_dir = '/data/wandb'
os.makedirs(data_save_dir, exist_ok=True)
wandb.init(
    project="my-test-project",  # 项目名字
    name="first",  # 项目底下每一次训练的名字
    dir=data_save_dir  # 文件保存的位置
)

# 配置的参数(可以把超参数放在这里)
wandb.config.update({
    "learning_rate": 0.001,
    "epochs": 100,
    "batch_size": 128
})

for i in range(10):
    if i & 1:
        # 前面的字典是纵坐标数据,step是横坐标
        wandb.log({'i': i, 'j': i + 1}, step=i)

本地

TODO

docker

原blog

linux

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

为了防止后面权限有问题,执行下面这个

sudo groupadd docker
sudo gpasswd -a $USER docker
newgrp docker

nvidia-docker

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
      && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
      && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
            sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
            sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

wsl

原blog

用管理员打开powershell

wsl --install

重启

用管理员打开powershell
启用适用于 Linux 的 Windows 子系统

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

安装这个(也有可能你安装过了)
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

继续打开powershell(管理员)

wsl --set-default-version 2

接着

wsl -l -o

列出可以安装的系统
在这里插入图片描述
比如安装ubuntu18

wsl --install -d Ubuntu-18.04

然后设置账号密码
在这里插入图片描述

好用的工具

  • snipaste (在微软商城)
  • 剪切板(win+v)
  • notion
  • Grammarly
  • QuillBot
  • Semantic Scholar
  • Connected Papers

About