Home avatar

Lixp 的 Blog

Quine程序

Quine 程序是指自生成程序, 它不接受输入, 运行它会输出程序源代码.

思路(以C语言为例):

  1. 先在代码任意位置定义一个字符串 s 与一个 printf 函数.
  2. 先构建字符串 s 的内容, 使其为程序源代码, 把其中 s 赋值部分留一个 s=%c%s%c, 在吧其中的转义字符修改为%c 并记录.
  3. 修改两个 printf 的部分, 把%s 位置输入为字符串 s, 其它位置输入应该的转义字符 ASCII 码.

如果使用 python, 其中有 repr()可以输出字符串对象本身, 或者使用%r 来调用, 如:

Nginx部署前后端分离服务

将以下配置添加到 Nginx 配置文件中, 通常在 /etc/nginx/nginx.conf, 或者在 /etc/nginx/conf.d 下新建文件, 添加相关配置.

server {
        listen       6006;
        listen       [::]:6006;
        server_name  _;

        client_max_body_size 100m;
        location / {
            root /home/guest/web/dist;
            try_files $uri /index.html;
        }

        location /api/ {
            proxy_pass http://127.0.0.1:6000/;
            proxy_set_header Host $proxy_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

Caddy部署前后端分离服务

编写以下配置, 文件名 Caddyfile

:6006 {
	root * /home/guest/web/dist
	file_server
	encode zstd gzip

	handle_path /api/* {
		reverse_proxy localhost:6000
	}
}

启动命令为 caddy run --environ --config /home/guest/web/Caddyfile.

Linux挂载NFS磁盘

执行以下命令安装并挂载

sudo apt install nfs-common
mkdir -p /mnt/server-disk
sudo mount -t nfs 192.168.10.195:/volume1/server-disk /mnt/server-disk

Ubuntu的Docker容器和镜像消失

一次ubuntu Linux机器内存溢出强行重启机器, 启动后docker的容器和镜像全部消失, 后台还有容器相关进程在运行, apt重装docker, 容器和镜像全部都能看到了, 然后在某次正常重启后, 又消失了, 网上查询了很多方式, 都不行, 最后发现是因为snap安装的docker和apt安装的docker共存导致的.

屏蔽部分GPU

使用lspci | grep NVIDIA查看:

3b:00.0 VGA compatible controller: NVIDIA Corporation Device 2684 (rev a1)
3b:00.1 Audio device: NVIDIA Corporation Device 22ba (rev a1)
5e:00.0 VGA compatible controller: NVIDIA Corporation Device 2684 (rev a1)
5e:00.1 Audio device: NVIDIA Corporation Device 22ba (rev a1)
86:00.0 VGA compatible controller: NVIDIA Corporation Device 2684 (rev a1)
86:00.1 Audio device: NVIDIA Corporation Device 22ba (rev a1)
af:00.0 VGA compatible controller: NVIDIA Corporation Device 2684 (rev a1)
af:00.1 Audio device: NVIDIA Corporation Device 22ba (rev a1)

或者nvidia-smi查看:

Ubuntu系统NVIDIA驱动和CUDA安装

使用Ubuntu官方仓库安装:

  1. sudo ubuntu-drivers autoinstall
  2. 重启
  3. sudo apt install nvidia-cuda-toolkit
  4. sudo apt install nvidia-container-toolkit / sudo apt install nvidia-docker2

这种方式比传统的去NVIDIA官网下载.run文件安装更简单, 并且仓库源由Ubuntu官方维护, 兼容性错误更少

MySQL安装相关

# 普通安装
docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=密码 mysql

# 退出自动重启
docker run -itd --restart=always --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=密码 mysql
# 备份
mysqldump -u 用户名 -p密码 -h host_address -P port_number database_name > database_dump.sql

# 恢复
mysql -u 用户名 -p密码 -h host_address -P port_number database_name < database_dump.sql