写在开始:
此系列博客是为了方便自己管理手下的服务器而写的。
我希望这个系列可以囊括所有一切关于服务器管理的内容。
我的目的是不参考其他的资料,完全按照这几篇博客里的内容操作一遍(命令可以直接拷贝而不用修改:),我就可以将一台刚刚重装完系统的服务器管理得井井有条。
毕竟什么都靠脑子记住和谷歌查资料也太累了!
虽然这些博客是写给我自己看的,但是也希望对你有帮助!
准备:用xshell远程连接,然后切换到root账户
编辑/etc/ssh/sshd_config
文件
#启用密钥登陆
RSAAuthentication yes
PubkeyAuthentication yes
#禁止root远程登陆
PermitRootLogin no
#禁止密码登陆
PasswordAuthentication no
然后登录到打算使用私钥登录的账户(接下来就不要换到root了),执行命令
ssh-keygen
选择路径(按 Enter)。
然后输入密钥锁码,或直接按 Enter 留空(建议留空,实现无密码登录)。
接着在服务器上安装公钥。然后进入前面保存密钥的路径。
cat id_rsa.pub >> authorized_keys
#赋予文件权限
chmod 600 authorized_keys
chmod 700 ~/.ssh
#将私钥导出到本地(就是使用xshell的电脑)
#格式为:sz 文件名
sz id_rsa
弄好以后长这样
私钥、公钥可以导出来后重命名也可也在里面重命名
参考教程
设置 SSH 通过密钥登录
ssh修改登录端口禁止密码登录并免密登录
vim ~/.bashrc
#在最后添加如下代码
#To beautify the bash.
#Added by xzf
#2019.1.31
export PS1="\[\e[36;1m\]\u\[\e[0m\]@\[\e[33;1m\]\h\[\e[0m\]:\[\e[31;1m\]\w\[\e[0m\]\$ " #如果要加换行的话加转义字符\n,其他一样
#添加好后重新注入环境变量
source ~/.bashrc
建议谁要用给谁弄,不要添加到系统环境变量
参考教程:Bash美化、Linux终端bash美化教程
安装+系统环境配置参考这个教程
更改源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
然后将现有的python的版本改成3.6(因为3.7太新了!!!)
conda install python=3.6
各个版本的gcc和g++都安装一遍,需要啥版本就把软连接指向啥版本!
apt install make g++-4.8 g++-5 g++-6 g++-7 gcc-4.8 gcc-5 gcc-6 gcc-7
推荐博客:How to install Nvidia drivers and cuda-10.0 for RTX 2080 Ti GPU on Ubuntu-16.04/18.04
sudo vim /etc/modprobe.d/blacklist.conf
在文本最后添加如下代码。(禁用nouveau第三方驱动,之后也不需要改回来)
blacklist nouveau
options nouveau modeset=0
然后执行
sudo update-initramfs -u
重启后,执行以下代码,若没有显示则禁用成功
lsmod | grep nouveau
apt install locales-all
//`方法一:使用ubuntu-drivers-common这个软件`
sudo apt install ubuntu-drivers-common
ubuntu-drivers devices
//`方法二`
lshw -numeric -C display //最好用sudo
//`方法三`
lspci -vnn | grep VGA
wget http://us.download.nvidia.com/XFree86/Linux-x86_64/410.93/NVIDIA-Linux-x86_64-410.93.run
然后给驱动run文件赋予执行权限
sudo chmod +x NVIDIA-Linux-x86_64-410.93.run
安装,可以加参数(安装驱动前可能需要先安装gcc和make)
sudo ./NVIDIA-Linux-x86_64-410.93.run
//教程中加了很多参数,但是我把参数都去掉了
参数有
–no-opengl-files:表示只安装驱动文件,不安装OpenGL文件。这个参数不可省略,否则会导致登陆界面死循环,英语一般称为”login loop”或者”stuck in login”。
–no-x-check:表示安装驱动时不检查X服务,非必需。
–no-nouveau-check:表示安装驱动时不检查nouveau,非必需。
-Z, --disable-nouveau:禁用nouveau。此参数非必需,因为之前已经手动禁用了nouveau。
-A:查看更多高级选项。
参考我的另一篇教程:Ubuntu server 18.04 Matlab 命令行安装教程
用conda在指定环境下安装。可以直接安装cudnn,这样可以自动安装cuda。
例如
#python2.7, cudnn=7.0.5, cuda=8.0
conda install cudnn=7.0.5
考虑到方法一使用的cuda针对的是python,并且用conda安装的cuda在/usr/local下没有cuda的文件夹,对于一些c++的代码或者需要cuda路径的代码,方法一就不行了。
接下来关于cuda和cudnn的内容是我在一台已经安装了nvidia-driver=410、cuda9.0、cudnn的ubuntu 18.04 server 服务器上安装cuda=8.0、cudnn=7.1.3后写下的,可能并不适用于你的情况,但我希望能提供一些参考的价值。步骤如下:
cd /usr/bin/
rm gcc
ln -s gcc-4.8 gcc
rm g++
ln -s g++-4.8 g++
dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb
apt update
apt install cuda
之所以选择.deb格式而不是.run,是因为我在用.run格式安装的时候一直遇到"error: cannot find toolkit in /usr/local/cuda-8.0"的错误,怎么也解决不了。
tar -xzvf cudnn-8.0-linux-x64-v7.1.tgz
cp cuda/include/cudnn.h /usr/local/cuda-8.0/include
cp cuda/lib64/libcudnn* /usr/local/cuda-8.0/lib64
chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda-8.0/lib64/libcudnn*
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
./deviceQuery
出现如下文字表示成功
有一些垃圾教程说可以使用nvcc -V
来测试,但这个命令是用来测试cuda的编译器是否安装成功。如果你运行不了这个命令可以运行如下命令:
#其实安装了nvidia-cuda-toolkit就可以运行nvcc -V了
apt install nvidia-cuda-dev nvidia-cuda-toolkit nvidia-cuda-gdb
由于我手里的服务器同时使用了方法一和方法二,用anaconda跑代码(比如pytroch)使用的是用anaconda安装的cudatoolkit,见下图,所以我不知道只用方法二的话,anaconda能不能用cuda,有兴趣的话你可以试一下,反正我是不敢试的,毕竟搞崩了我可承受不起:)
看了很多的教程(官方的和个人的、中文的和英文的),cuda、cudatoolkit、toolkit这些的名词的区别我还是不知道。
安装的时候可以参考英伟达官网上给出的cuda文档和cudnn文档
cuda和cudnn的版本关系可以参考这篇博客:TensorFlow版本配套关系表(cudnn、cuda、Python的配套关系,包含所有操作系统)
参考博客
安装:官网
apt install smaba
#不知道为什么,在16.04下使用上面的命令搜不到,只能用apt-get了
apt-get install samba
官网给出的教程还要安装
attr winbind libpam-winbind libnss-winbind libpam-krb5 krb5-config krb5-user
,但是ta好像是为了进行域管理,我们暂时不需要,就不用安装。
配置:在/etc/samba/smb.conf
末尾添加
[xzf]
path = /home/xzf
valid users = xzf
force user = xzf
create mask = 0755
browseable = yes
available = yes
read only = no
writeable = yes
public = yes
参数说明:
[xzf]:共享目录的名称
path:共享的目录
force user:使得操作的时候和服务端用户一样
create mask:创建文件属性
browseable:在浏览资源中显示共享目录,若为否则必须指定共享路径才能存取
read only:加上只是为了以防万一
writeable:不以只读方式共享当与read only发生冲突时,无视read only
public:公开共享,若为否则进行身份验证(只有当security = share 时此项才起作用)
添加一个普通账户,用于访问这个目录
#需要root权限
smbpasswd -a xzf
重启
#我在ubuntu 18.04和16.04测试的都是smbd,根网上的教程中用的smb或samba都不一样,可能是软件更新后命令不一样了吧
service smbd restart
Windows端,进入文件资源管理器,左侧列表里,对”网络“右键,添加”映射网络驱动器“,输入"\\192.168.1.102\xzf",输入前面用smbpasswd
创建的用户名和密码。
前提:终端访问外网
脚本安装Netdata
bash <(curl -Ss https://my-netdata.io/kickstart-static64.sh)
不要使用sudo!!!脚本里用到的时候会让你输入密码的
安装路径为/opt/netdata/
安装第三方Nvidia GPU插件
#首先安装所需软件
#英伟达驱动和这个
pip install nvidia-ml-py #最好在root下安装
#然后安装插件
git clone https://github.com/Splo0sh/netdata_nv_plugin --depth 1
sudo cp netdata_nv_plugin/nv.chart.py /opt/netdata/usr/libexec/netdata/python.d/
sudo cp netdata_nv_plugin/python_modules/pynvml.py /opt/netdata/usr/libexec/netdata/python.d/python_modules/
sudo cp netdata_nv_plugin/nv.conf /opt/netdata/etc/netdata/python.d/
因为安装的是static版本的,所以复制过去的路径和github中的不一样
重启Netdata
sudo service netdata restart
#安装各种所需的软件和依赖项。
#如果出现“Uable to locate package libjasper-dev", 删除之,否则编译报错。然后运行下面的代码。其他的找不到也一样的。
apt install build-essential libgtk2.0-dev libtbb-dev libvtk5-dev libjpeg-dev libopenexr-dev cmake git pkg-config libavcodec-dev libavformat-dev libswscale-dev libtbb2 libpng-dev libtiff-dev libdc1394-22-dev
#
cd opencv-2.4.9/
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_CUDA=OFF ..
make -j4
make install
#BT下载工具(可能默认安装好了)
apt install transmission-cli
#aria2
apt install aria2
参考教程
transmission命令行工具集中文使用说明
aria2.conf配置文件
安装
#安装pip
sudo apt install python3-pip
#执行
pip3 install https://github.com/s/s/archive/master.zip
#安装完后检查是否为3.0.0版本,若显示Shadowsocks 3.0.0则进行下一步
ssserver --version
配置:创建s.json,然后复制粘贴一下内容并适当修改:
{
"server":"服务器ip",
"server_port":6666,
"local_address": "127.0.0.1",
"local_port":1080,
"password":"连接密码",
"timeout":300,
"method":"aes-256-cfb"
}
启动Shadowsocks
ssserver -c /etc/s.json -d start
参考教程
参考这个教程
//安装
sudo apt-get install hwinfo
//启动
hwinfo
//或
hwinfo --short
sudo apt install sl
LS
–
sudo apt install nethogs
sudo apt install slurm