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

USER
root@serverpi:~# sudo apt install speedtest-cli -y root@serverpi:~# speedtest Retrieving speedtest.net configuration… Testing from Vodafone Germany Cable (62.143.173.13)… Retrieving speedtest.net server list… Selecting best server based on ping… Hosted by Händle & Korte GmbH (Dusseldorf) [0.46 km]: 31.382 ms Testing download speed……………………………………………………………………. .Download: 57.35 Mbit/s Testing upload speed………………………………………………………………………………………… Upload: 10.05 Mbit/s

查看端口

查看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 adresses
  • cat /proc/iomem shows the memory map and reserved zones.
  • cat /proc/interrupts lists the interruption assignments.
  • cat /proc/dma lists the Direct Memory Accessess
  • lsmod 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)

USER
$> screen $> [run some shell command or .sh file or nodejs ] $> Strg+A+D 退出窗口,甚至可以退出 Terminal 重新登录后恢复 screen $> screen -r $> screen -list screen -S 364249.pts-0.serverfin -X quit

  • 列举存在的窗口: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

Linux Check User Password Expiration Date and Time

进程

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 加速

ubuntu 20.4 单边加速

修改系统变量:

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 项目地址

DDNS 新的文档

填写四个项

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 // 不再使用的孤立软件

防止攻击

it/server/ubuntu.txt · 最后更改: 2024-07-18 09:41 由 goldentianya
回到顶部
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0