实习期间担任了实验室的运维,管理四台服务器,学到了很多Linux管理的知识,现在整理如下
docker
安装
docker.io是旧版本,不建议使用。一般使用docker-ce。官方安装教程
启动
sudo service docker start
docker中使用nvidia
注意其示意图显示cuda是需要安装在容器中的,因此基础镜像最好从docker仓库的nvidia-cuda拉取
注意其有两个版本,两个版本进入nvidia环境的命令参数不同
docker中使用opengl
基础镜像请从nvidia-opengl拉取
docker中开启图形界面
解除Xserver访问限制
xhost +
运行镜像时有两种选择
- 使用宿主机网络
docker run --env="DISPLAY" --net=host \
--volume="$HOME/.Xauthority:/root/.Xauthority:rw" \
--env="QT_X11_NO_MITSHM=1" \
-v /tmp/.X11-unix:/tmp/.X11-unix:ro -it \
-v /home:/out_home --name ros_slam ros_slam_image:19-7-22 /bin/bash
- 使用独立网络
docker run -it --env="DISPLAY" \
--env="QT_X11_NO_MITSHM=1" \
--volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
--volume="$HOME/.Xauthority:/root/.Xauthority:rw" osrf/ros:indigo-desktop-full /bin/bash
进入容器后查看mobaxterm的x server的地址,将DISPLAY变量改为x_server_ip:0.0,此时若出现问题,可先关闭本地防火墙之后再行试验。 注意 x11 remote access设置为full,去掉RANDR的勾选,如下图
- 附测试下x11图形界面的小程序,为
xclock
,xeyes
,若没有这两个小程序则安装x11-apps
nfs系统相关命令
安装配置
参考 https://blog.csdn.net/CSDN_duomaomao/article/details/77822883
服务端操作
启动
sudo /etc/init.d/nfs-kernel-server start
sudo /etc/init.d/nfs-kernel-server restart
编辑共享文件夹
sudo vim /etc/exports
客户端操作
手动挂载
显示可挂载点 showmount -e 10.0.20.230
客户端挂载 sudo mount 10.0.20.230:/home /home/share_home
取消挂载 umount /root/remote_dir
设置系统挂载
为了使得系统能开机自动挂载,需要设置系统挂载
编辑/etc/fstab文件,添加如下(注意nfs):
10.0.20.30:/home /home/share_home nfs defaults 0 2
FTP
安装
sudo apt-get install vsftpd
启动
sudo service vsftpd start
查看ftp运行状态
sudo service vsftpd status
配置文件
/etc/vsftpd.conf
Xrdp安装设置
安装xrdp
sudo apt-get install xrdp
安装vnc4server
sudo apt-get install vnc4server
安装xfce4
sudo apt-get install xubuntu-desktop
配置xfce4
sudo vi /etc/xrdp/startwm.sh
在. /etc/X11/Xsession
前一行插入xfce4-session
重启xrdp `sudo service xrdp restart
防火墙设置
目前基本全都允许通过了,如果以后还需要进行网络控制,则参考本节
设置内网允许通过
iptables -A INPUT -s 10.0.20.0/24 -j ACCEPT
设置特定IP(特定主机)可通过
iptables -A INPUT -s github.com -j ACCEPT
iptables -A INPUT -s 8.8.8.8 -j ACCEPT
......
-
最后,设置其他地址不可通过,请注意,此步骤必须放在最后
iptables -A INPUT -s 0.0.0.0/0 -j DROP
服务器加装硬盘(raid1)以及/home目录迁移到新硬盘
lsblk
查看硬盘名称sudo apt-get install mdadm
安装mdadmsudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
制作raid1,最后两个参数参看步骤1sudo mkfs.ext4 /dev/md0
格式化为ext4格式的文件系统sudo mkdir /media/md0
创建一个目录以供挂载sudo mount /dev/md0 /media/md0
硬盘挂载在上一步的目录中sudo rsync -avx /home/ /media/md0/
将home目录备份到刚刚挂载的硬盘中(注:这一过程可能要很久,可以使用tmux管理这个进程)(可选)
sudo rm -rf /home/*
删除home目录下的所有文件sudo mount /dev/md0 /home
将硬盘挂载到home目录sudo blkid
查看硬盘信息,记录UUID编辑
/etc/fstab
文件,添加如下(根据上一步的信息)
UUID=175ab25f-5190-4df7-8795-8a00a0f78fd6 /home ext4 defaults 0 2
df -h
查看挂载情况附:
findmnt
, 以树形结构图的方式列出所有已挂载的文件系统
全新服务器配置环境
安装docker-ce(官网教程)和nvidia-docker(https://github.com/NVIDIA/nvidia-docker),创建个人账户并加入visudo
硬盘分区(https://www.cnblogs.com/yinzhengjie/p/6844372.html),格式化,挂载
安装与设置FTP
安装NFS
-
将硬盘挂载和NFS远程挂载写入/etc/fstab,NFS挂载要注意协议为nfs:
10.0.20.30:/home /home/share_home **nfs** defaults 0 2
安装nvidia驱动
-
按照官网教程进行cuda安装(教程中少了最后一步 sudo apt-get install cuda)
附1:安装完之后需要重启,否则nvidia-smi会显示错误
附2:查看cuda版本 nvcc -V; 如果找不到nvcc -V就到/usr/local/cuda-10.1/bin/目录寻找
按照官方教程安装cudnn(Bird服务器因为cudnn下载不下来所以未安装)
安装vnc4server,这里注意要安装 ~/.vnc/xstartup 当中的依赖项
Opencv,下载之后按照官网教程,查看版本pkg-config --modversion opencv
琐碎项
账户相关
创建用户
首先 sudo useradd -m -d /home/someone -G docker someone -s /bin/bash
然后 passwd someone
用户加入用户组(以docker组为例)
usermod -a -G docker someone
权限操作
sudo权限
使用visudo进行修改,指定一部分用户拥有sudo权限
文件权限修改
将某个文件权限改为rwxr-xr--
有两种方式
chomd 754 filename
,一个数字代表三位二进制,7 for rwx, 5 for r-x, 4 for r--
chomd u=rwx, g=rx, o=r filename
,u
for user,g
for group,o
for others
将某个文件改变拥有者的命令为 chown
进程相关
以依赖树的形式展示进程
pstree
以文本匹配的方式kill进程
pkill
。 注:匹配内容可以是用户名,可以是命令以后台形式运行
(cmd) &
查看某个进程详细信息
ps pid
查看端口占用情况
lsof -i:port
查看文件夹大小(以home为例)
sudo du -h /home --max-depth=1
禁用远程服务
禁用sftp
将/etc/ssh/sshd_config
中的
Subsystem sftp ...
替换为Subsystem sftp /bin/false
禁用scp(tricks)
重命名scp使得系统找不到scp:
mv /usr/bin/scp /usr/bin/scp_hidden
禁用USB存储设备
编辑 /etc/modprobe.d/blacklist.conf,添加两行,然后重启电脑
black uas
black usb_storage
开机自动运行指令
将需要开机时执行的指令写入/etc/rc.local
安装cmake
安装cmake时,按照这里(https://askubuntu.com/a/610352)的第二种方法编译安装(选择make install而非checkinstall),之后再运行hash –r
即可
使用镜像加速
pip安装时使用清华镜像
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package