目录
Ubuntu 系统
重要的命令
初始化
包括更改root用户密码、允许以 root 身份 ssh 登录。否则 headless 服务器无法进行后续操作。
sudo passwd root #修改root的密码 su root #转成root身份,否则ubuntu用户没有办法修改任何文件 # 修改 /etc/ssh/sshd_config 文件 PermitRootLogin yes #然后重启ssh服务 sudo service ssh restart
添加新用戶 sudo adduser xxxx
系统架构
uname -a arch dpkg --print-architecture
查看网卡
方法一:ip a
方法二:iwconfig
$ apt install wireless-tools $ iwconfig
测试网速,先下载测试工具
sudo apt install speedtest-cli -y speedtest
查看端口
查看1194端口当前被什么服务侦听:netstat -ltnup | grep 1194
查看openvpn当前侦听哪个端口:netstat -ltnup | grep openvpn
查看内存
列举占用内存最多的10个应用
ps aux --sort=-%mem | head -n 10
TimeShift 系统备份
使用 TimeShift 备份到usb 闪存。1) 2) 应该可以代替 mongodb 的快照备份。安装TimeShift:
sudo add-apt-repository -y ppa:teejee2008/ppa sudo apt update sudo apt install timeshift
查看8888端口是否被占用
lsof -i:8888
RSYNC 备份服务
参考文章:RSYNC备份服务 以及 rsync的基本使用
从主机拉数据 3)
download
rsync -avzP --delete root@{remoteHost}:{remoteDir} {localDir}
参数说明:
-a 参数,相当于-rlptgoD(-r 是递归 -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件);
-z 传输时压缩;
-P 传输进度;
-v 传输时的进度等信息;
–exclude=PATTERN #指定排除不需要传输的文件模式
–exclude-from=file #文件名所在的目录文件
向备机推数据
download
rsync -avzP --delete {localDir} root@{remoteHost}:{remoteDir} # 大文件夹使用参数 az 就可以l
磁盘镜像备份
备份命令 sudo dd if=/dev/sda1 of=/media/.../back.img
恢复命令 sudo dd if=/media/.../back.img of=/dev/sda1
压缩备份:sudo dd if=/dev/sda1 status=progress | gzip -c > ~/elf.bak
压缩还原:gunzip -c ~/elf.bak | sudo dd of=/dev/sda1 status=progress
查看磁盘类型:rota 为 1 表示可旋转,即是 SSD 磁盘,否则是 HDD
download
> lsblk -d -o name,rota NAME ROTA loop0 1
Restic 备份
新的备份工具,详情参阅Restic 备份
BTRFS 文件系统
最详细的说明参阅 官方文档 以及技术分享。 4) 5) 6)
很可惜 Mongodb 没有办法运行在 btrfs 格式的文件系统下。主力服务器托管数据库的磁盘使用 LVM 并且格式化为 xfs 格式。主力服务使用它只是为了方便对系统进行备份,这样很重要。
网络驱动器
通过 映射网络驱动器 访问 NAS 共享的文件夹
Ubuntu下映射网络驱动器
简单的说就是采用mount命令将远端磁盘挂载到本地目录。首先在本地建立一个目录用于挂载远端磁盘,为了方便识别这里直接用远端磁盘的ip(x.x.x.x)作为目录名称。然后,采用mount命令进行挂载:sudo mount //x.x.x.x/Data /home/lfqy/x.x.x.x/ -o username=Administrator,password=123
。其中,x.x.x.x是远端磁盘所在机器的ip,Data应该是盘符(或驱动器名称,反正对应的是在windows下映射网络驱动器要指定的内容),/home/lfqy/x.x.x.x/
是挂载目录,将远端磁盘挂在到本地的该目录,-o 后面利用选项指明远端磁盘所在主机的用户名和密码(一般windows下的用户名都是Administrator,一定不要拼错)。回车,然后输入密码即可挂载成功。
设置环境变量
sudo vim /etc/profile export NAME=text_value # 刷新使其生效 source /etc/profile
CPU info
// cpu more /proc/cpuinfo // gpu sudo lshw -C display sudo lshw -C video | grep product
lspci
会显示所有硬件信息
lshw
lists all hardware.lshw -short
provides a short hardware summary.Use cat /proc/cpuinfo
for a crude, but quick way to display your processor information.lspci
lists connected PCI cards.lsusb
lists connected USB devices.cat /proc/net/dev
lists all the network interfaces. Alternatively, try lshw -class network.cat /proc/ioports
lists communication ports and adressescat /proc/iomem
shows the memory map and reserved zones.cat /proc/interrupts
lists the interruption assignments.cat /proc/dma
lists the Direct Memory Accessesslsmod
lists the modules loaded by the kernel, and helpt to identify the hardware configured
邮件转发
安装完 mailutils 之后会自动启动postfix,如果要重新设置则,用命令 sudo dpkg-reconfigure postfix
sudo apt install mailutils sudo dpkg-reconfigure postfix
Screen 会话窗口
特别适用于远程登录主机,执行很长时间的大任务。它将任务放在一个独立的环境中执行,就算失去连接。重新登录后也能不丢失原先的工作进程。7)
- 列举存在的窗口:screen -list 或者 screen -ls
- 退出窗口:
ctrl+a
,然后松开,接着按d
- 进入窗口
- 创建窗口
screen
- 进入一个唯一的窗口
screen -r
- 进入多个窗口中的一个
screen -r 397019.pts-0.serverfin
- 关闭窗口process
- 先进入它,然后按
ctrl + a
,松开,按k
,下面会出现白色提示,选择y
即可永久关闭窗口进程。 - 直接代码关闭
screen -S 364249.pts-0.serverfin -X quit
crontab 定时任务
参考文章:crontab 用法
创建swap
远程桌面
Ubuntu 中设置桌面共享 以及 VNC unter Mac OS X einrichten
安装文章中的第三种方式XRDP就好,可以直接使用微软的远程桌面。在Mac上要安装微软远程桌面 (注意需要开通防火墙3389)
apt install ubuntu-desktop apt install xrdp
修改conf文件并重启
sudo vim /etc/xrdp/xrdp.ini port=tcp://:3389 systemctl restart xrdp
防火墙放行 3389 端口
用户
查看用户及密码过期时间:chage -l userName
修改过期提示时间:sudo chage -W WARN_DAYS userName
进程
ps aux | grep -v grep | grep mongod
→ 获取 mongo 进程的 id 为 20255
mai 20255 1.0 0.5 43884684 46136 ?? R 六01下午 22:26.64 /opt/homebrew/opt/[email protected]/bin/mongod –config /opt/homebrew/etc/mongod.conf
top 命令查询 top -pid 20255 -l 1 | tail -n 1 | awk '{print $8}'
BBR 加速
修改系统变量:
echo net.core.default_qdisc=fq >> /etc/sysctl.conf echo net.ipv4.tcp_congestion_control=bbr >> /etc/sysctl.conf
保存生效 sysctl -P
执行 sysctl net.ipv4.tcp_available_congestion_control
如果结果是这样
sysctl net.ipv4.tcp_available_congestion_control net.ipv4.tcp_available_congestion_control = bbr cubic reno
就开启了。 执行 lsmod | grep bbr ,以检测 BBR 是否开启。结果大约为 tcp_bbr 24576 3
更改主机名
更改服务器名称,hostnamectl 命令无需重启,重新 ssh 连接就可以。
hostnamectl hostnamectl set-hostname new-hostname
用户
// 将用户username 添加到组别groupName sudo usermod -a -G groupName userName sudo adduser user group
更改用户git的bash shell:sudo chsh -s /bin/bash git
(前提是git已近在sudo组别)
开启git用户的sudo权限:sudo visudo
并添加 git ALL=(ALL:ALL) ALL
自动更新域名解析
过时了 cloudflare ddns update 项目地址
填写四个项
download
auth_email="" # 邮箱 auth_method="global" # Set to "global" for Global API Key or "token" for Scoped API Token auth_key="" # 公共密钥 zone_identifier="" # 区id record_name="" # 域名 指向家里的ip地址
软件包
查看包
download
apt-cache search keyword
卸载包
apt-get remove postfix // 普通卸载 apt-get remove --purge postfix // 删除配置 apt-get autoremove --purge postfix // 检查并删除无用依赖包
// 下载包临时存放的目录 ls /var/cache/apt/archives // 备份当前安装的所有包 dpkg --get-selections | grep -v deinstall > ~/somefile dpkg --set-selections < ~/somefile // 恢复所有的安装包 sudo dselect // 清除缓存 sudo apt-get autoclean sudo apt-get clean sudo apt-get autoremove // 不再使用的孤立软件