nginx 容器安装 acme.sh

把 acme.sh 安装到 nginx 容器里的好处是方便管理,能随 nginx 启动而启动

原理

主要是利用了 linuxserver/nginx 容器的 custom-cont-init.d 目录,此目录可以放自己的脚本,当容器启动时会自动运行。注意:每次启动,包括重启都会运行。

-- 阅读剩余部分 --

日志保留指定行数

有时 shell 脚本需要把运行结果写入 log,但又不能不限制,于是这个限制最新行数的脚本诞生了

#!/bin/sh

while true; do
    row_number=$(sed -n '$=' /var/log/hddstatus.log)
    #row_number=$(grep -c "" /var/log/hddstatus.log)
    delete_rows=$(expr $row_number - 500)
    if [ $row_number -gt 500 ]; then
        sed -i "1,${delete_rows}d" /var/log/hddstatus.log
    fi
    echo $(echo '[' && date "+%Y-%m-%d %H:%M:%S" && echo ']' && hdparm -C /dev/sdb) >>/var/log/hddstatus.log
    sleep 360
done

自定义启动 rsync 守护

OpenWRT 上面挂了一个 2T 硬盘用来异地备份群晖,需要开启 rsync 守护。
OP 自带的 rsync 配置文件是 /etc/rsyncd.conf,我需要用自己的配置
于是需要先关闭系统自带的 rsync 进程,我脚本如下:

#!/bin/sh
killall rsync
rsync --daemon --config=/mnt/sda3/my.files/rsync/rsyncd.conf

我把这个脚本放进 OP 开机启动项,rsync 进程倒是结束了,但是新的 rsync 进程并没有成功,于是我手动运行它,提示:

failed to lock pid file /var/run/rsyncd.pid: Resource temporarily unavailable

再添加一个 sleep 1

#!/bin/sh
killall rsync
sleep 1
rsync --daemon --config=/mnt/sda3/my.files/rsync/rsyncd.conf

就可以了。