Skip to main content

Linux

查看GLIBC支持版本

strings /lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC_

设置DNS

sudo resolvconf -u

查看ssh系统日志

sudo journalctl -u ssh --no-pager | grep -i "stop\|exit\|shut down\|fail"

sudo grep "Failed password" /var/log/auth.log* | awk '{print $11}' | sort | uniq -c | sort -nr

查看硬盘信息

ps -aux 

挂载硬盘总结

# 查看硬盘挂载情况
lsblk
df -kh
# 挂载
sudo mount /dev/sdb /home #物理地址 逻辑地址

Read-only file system

sudo mount -o remount,rw /

GPU有关查询

nvidia-smi --query-compute-apps=pid,used_memory --format=csv

清空swap内存

某次分布式训练程序运行很慢而且会报错 torch.distributed.elastic.multiprocessing.errors.childFailedError, 网上说是子进程遇到资源不足的问题报错,观察内存发现swap异常被占满:

alt text

分析发现程序占用内存过大导致,修改完程序后清空swap内存:

# root
swapoff -a
swapon -a

删除一个txt文件的每行的第一个0

sed 是一个流编辑器,适合处理文本行的修改,如果不想生成新文件,可以用 sed -i:

sed 's/^0//' input.txt > output.txt
sed -i 's/^0//' input.txt

删除监听在某端口的所有程序

kill $(lsof -t -i:29502 -a -u hh)

删除某个用户的所有python程序

killall -u username python

scp

# 从服务器下载整个目录
scp -r username@servername:remote_dir/ /tmp/local_dir
# 上传目录到服务器
scp -r /tmp/local_dir username@servername:remote_dir

bash: /usr/bin/cp: Argument list too long

cp 或者 mv命令复制移动的文件太多会导致这个问题

find 源路径 -name "*.jpg" -type f -print0 | xargs -0 cp -t 目标路径

用户操作

sudo useradd -m -d 用户主目录 -c "用户描述" 用户名
sudo passwd 用户名

## 修改用户根目录
# sudo下设置根目录
usermod -d /data2/hh hh
sudo mkdir /data2/hh
chown -R tom /opt/test
# 此命令是指定test文件夹的所有者是tom,-R是递归。如果test是文件就去掉-R。

lastlog
sudo userdel -r xxx
last -x -F

Unable to determine the device handle for GPU0000:81:00.0: Unknown Error

推测是供电不足导致的问题,因此需要限制显卡功率

# 查看显卡功率
sudo nvidia-smi -q | grep 'Power Limit'
# 开启持久模式
sudo nvidia-smi -pm 1
# 限制某张卡的功率为250W
sudo nvidia-smi -i 1 -pl 250

PostgreSQL

Ubuntu 安装

sudo apt install postgresql
sudo service postgresql status
sudo -i -u postgres # 密码为空

psql # 进入数据库终端
ALTER USER postgres WITH PASSWORD 'Lpf65BsDhDNdaJmH';
# 创建名为 mydbuser 的用户,为 mydbuser 设置密码,并为 mydbuser 分配 CREATEROLE 和 CREATEDB 权限:
postgres=# CREATE USER mydbuser WITH PASSWORD 'mypasswd' CREATEROLE CREATEDB;
CREATE ROLE
\du #查看用户

# 使用 \q meta 命令从互动终端注销:
postgres=# \q

# 注销 postgres 用户会话:
$ logout

# 以 mydbuser 用户身份登录 PostgreSQL 终端,指定主机名并连接到默认的 postgres 数据库,该数据库在初始化过程中创建:
psql -h 127.0.0.1 -p 5432 -U hh -d postgres

# 创建数据库
create database track;
\l # 查看数据库

卸载:

sudo systemctl stop postgresql           ### 关闭数据库服务
sudo systemctl status postgresql ### 确认数据库服务处于关闭状态
sudo apt-get purge 'postgresql-*' ### 卸载数据库
sudo apt-get autoremove 'postgresql-*' ### 卸载数据库依赖包
sudo rm -r /etc/postgresql/ ### 删除配置文件
sudo rm -r /etc/postgresql-common/ ### 删除配置文件
sudo rm -r /var/lib/postgresql/ ### 删除数据目录
sudo userdel -r postgres ### 删除用户
sudo groupdel postgres ### 删除用户组