分类 Ubuntu 下的文章

今天弄了一台虚拟机想安装宝塔面板,发现 wget 一直卡着无法下载。
加个超时测试:

wget -T10 https://dg1.bt.cn/install/4/phpmyadmin.sh
root@xserver:/var/app# wget -T10 https://dg1.bt.cn/install/4/phpmyadmin.sh
--2023-11-06 06:28:05--  https://dg1.bt.cn/install/4/phpmyadmin.sh
Resolving dg1.bt.cn (dg1.bt.cn)... 240e:a5:4200:89::256, 42.157.129.47
Connecting to dg1.bt.cn (dg1.bt.cn)|240e:a5:4200:89::256|:443... failed: Connection timed out.
Connecting to dg1.bt.cn (dg1.bt.cn)|42.157.129.47|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3496 (3.4K) [application/octet-stream]
Saving to: ‘phpmyadmin.sh’

phpmyadmin.sh                 100%[=================================================>]   3.41K  --.-KB/s    in 0s

2023-11-06 06:28:15 (75.8 MB/s) - ‘phpmyadmin.sh’ saved [3496/3496]

发现IPv6连不上,IPv4没问题,测试 curl 正常,可能 curl 优先使用 ipv4吧。
为了能正常使用 wget,于是禁用掉 wget 的 ipv6:

vim /etc/wgetrc

加一行:inet4_only = on
保存,测试,搞定。。。

注:/etc/wgetrc 是全局的,对所有用户生效,如果只想对当前用户生效,修改文件 $HOME/.wgetrc 即可

查看磁盘占用情况:

df -h

查找大文件(. 为路径,根据需要修改,全盘搜索就直接 / ):

find . -type f -size +800M

查找哪个目录占用大空间:
先查找根目录:

du -ah --max-depth=1 /

看哪个目录占用大,然后进去再查看下一层,比如 var 目录大,则:

cd /var
#不指定目录默认为当前目录
du -ah --max-depth=1

一层一层下去就可以找到目标目录。

首先,在 vmware 中扩展硬盘空间,这个很简单,不用多说。做好后,到系统中:

fdisk /dev/sda

按 n 创建新分区,全部按默认的即可,新系统一般有 /dev/sda1 - sda3,默认创建为 /dev/sda4
然后创建物理卷:

pvcreate  /dev/sda4

可以用 pvscan 查看情况,sda3 在卷组 “ubuntu-vg” 里,而 sda4 不在内。然后用vgextend,把新物理卷加到卷组:

vgextend ubuntu-vg /dev/sda4

查看卷组的命令是:vgdisplay
接下来是要扩容逻辑卷,使用 lvextend 命令,使用前,请先用 df -h 得到物理磁盘路径,默认为:/dev/mapper/ubuntu--vg-ubuntu--lv

lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv

最后,运行 resize2fs,让逻辑卷的扩容生效:

resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

搞定!

另外,在 vmware 中扩容后,开始使用 fdisk 命令,会有红色错误提示:

GPT PMBR size mismatch (41943039 != 125829119) will be corrected by write.

这个很简单,直接运行 fdisk /dev/sda 后,按 w 保存修改就会自动修复了。

创建系统服务:

vim /etc/systemd/system/chat.service
[Unit]
Description=Chat-Server

[Service]
ExecStart=/var/www/chat/server.js
Restart=always
User=nobody
Group=nogroup
Environment=PATH=/usr/bin:/usr/local/bin
Environment=NODE_ENV=production
WorkingDirectory=/var/www/chat

[Install]
WantedBy=multi-user.target

修改权限:

chmod 644 /etc/systemd/system/chat.service

重新加载服务信息:

systemctl daemon-reload

设定自动启动服务:

systemctl enable chat

运行:

service chat start

变更主机名:
hostnamectl set-hostname mail.domain.com
sed -i '$a 您的IP mail.domain.com mail' /etc/hosts

安装 docker:
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version

从官网生成配置文档:https://setup.mailu.io/1.9/

  • 选 Compose
  • 注意选 Webmail Client
    最后会生成2个配置文件链接网址,下载即可

mkdir /mailu
cd /mailu
wget 配置文件链接1
wget 配置文件链接2

启动:
docker-compose -p mailu up -d

增加管理员:
docker-compose -p mailu exec admin flask mailu admin master domain.com password