分类 Linux 下的文章


昨天决定把服务器的系统从 Ubuntu 18.04 升级到 Ubuntu 20.04,其中经历了不少问题点,下面记录下处理过程。

首先就是升级当前系统所有包到最新:

apt update && apt upgrade -y
apt autoremove && apt purge

然后安装升级需要的管理包,不过一般系统都是自带的:

apt install update-manager-core

然后就可以更新系统了:

do-release-upgrade

标准流程就是以上几步,但是在最后一步的时候问题就开始出现了。

阅读全文


我的服务器上在使用 wget 或者 curl 等网络工具时,每次都提示类似下面的报错:

ERROR: cannot verify github.com's certificate, issued by ‘CN=DigiCert High Assurance TLS Hybrid ECC SHA256 2020 CA1,O=DigiCert\\, Inc.,C=US’:
  Unable to locally verify the issuer's authority.
To connect to github.com insecurely, use `--no-check-certificate'.

需要通过参数跳过证书检查,但是这样又有了安全风险。

首先尝试更新本地证书文件:

update-ca-certificates --verbose --fresh

发现问题没有解决,原来是系统缺少了一个指向证书路径 /etc/ssl/certs 的环境变量,尝试添加:

export SSL_CERT_DIR=/etc/ssl/certs

再次测试 wget 命令,发现问题的确没有了。

可以将上面的环境变量添加到系统 shell 配置文件中,我这里是 ~/.bashrc,添加后刷新一下即可:

source ~/.bashrc

在更新 Ubuntu18.04 到 20.04 时,也是这个问题导致的报错。


我在软路由上通过 esxi 安装了 openwrt 作为路由系统。虚拟机分配了 5 GB 作为存储空间,但是安装完成后通过命令查看发现系统识别到的空间只有很小:

root@OpenWrt:~# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root               252.0M    241.4M      5.5M  98% /rom
tmpfs                   496.5M     68.0K    496.4M   0% /tmp
/dev/sda1                15.7M      3.8M     11.6M  25% /boot
/dev/sda1                15.7M      3.8M     11.6M  25% /boot
tmpfs                   512.0K         0    512.0K   0% /dev

其中 /dev/root 是系统固件目录,不用考虑。/dev/sda* 就是系统实际可用的硬盘空间。我明明分配了 5 GB 空间给 openwrt 但是由于系统分区是在下载的固件中定义好的,所以其余空间就没有被识别。由于默认存储空间过小,当安装了过多的插件后,会提示空间不足导致无法安装更多插件:

verify_pkg_installable: Only have 0kb available on filesystem /overlay, pkg luci-app-openvpn needs 9
opkg_install_cmd: Cannot install package luci-app-openvpn

下面介绍如何将剩余空间挂在到 openwrt 中。

阅读全文


我们在编程中经常会使用一些固定语句来解决对应固定的问题,在 shell 脚本中一个被经常使用但不太好理解的短句就是 2>&1,例如:

ls foo > /dev/null 2>&1

下面我们一步步了解下这种结构的含义。

阅读全文