群晖raid1改为basic

将两盘raid1(SHR)改为basic。

  • 拔掉raid1中的一个硬盘;
  • cat /proc/mdstat查看当前阵列状态;
  • md0/md1一般是群晖的系统分区,从md2开始确认硬盘对应的分区;
  • mdadm --grow --raid-devices=1 --force /dev/md2
  • 在存储空间管理中确认已变为basic.
root@NAS:~# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md2 : active raid1 sda3[2]
      2925423616 blocks super 1.2 [2/1] [_U]

md3 : active raid1 sdd3[0]
      2925444544 blocks super 1.2 [1/1] [U]

md4 : active raid1 sdb3[0]
      3902196544 blocks super 1.2 [1/1] [U]

md5 : active raid1 sdf3[0]
      483564544 blocks super 1.2 [1/1] [U]

md6 : active raid1 sdc3[0]
      2925444544 blocks super 1.2 [1/1] [U]

md1 : active raid1 sda2[0] sdb2[1] sdc2[2] sdd2[3] sdf2[4]
      2097088 blocks [16/5] [UUUUU___________]

md0 : active raid1 sda1[0] sdb1[1] sdc1[2] sdd1[3] sdf1[4]
      2490176 blocks [12/5] [UUUUU_______]

unused devices: <none>
root@NAS:~# mdadm --grow --raid-devices=1 --force /dev/md2
raid_disks for /dev/md2 set to 1
root@NAS:~# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md2 : active raid1 sda3[2]
      2925423616 blocks super 1.2 [1/1] [U]

md3 : active raid1 sdd3[0]
      2925444544 blocks super 1.2 [1/1] [U]

md4 : active raid1 sdb3[0]
      3902196544 blocks super 1.2 [1/1] [U]

md5 : active raid1 sdf3[0]
      483564544 blocks super 1.2 [1/1] [U]

md6 : active raid1 sdc3[0]
      2925444544 blocks super 1.2 [1/1] [U]

md1 : active raid1 sda2[0] sdb2[1] sdc2[2] sdd2[3] sdf2[4]
      2097088 blocks [16/5] [UUUUU___________]

md0 : active raid1 sda1[0] sdb1[1] sdc1[2] sdd1[3] sdf1[4]
      2490176 blocks [12/5] [UUUUU_______]

unused devices: <none>

日志保留指定行数

有时 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

就可以了。

通过新建 service 设置 frp 开机启动

创建 service 服务文件

以 frp client 为例:

sudo nano /etc/systemd/system/frpc.service

内容:

[Unit]
Description=frpc
After=network-online.target

[Service]
Type=simple
WorkingDirectory=/root/frp/
ExecStart=/root/frp/frpc -c /root/frp/frpc.ini
Restart=on-abort
User=root

[Install]
WantedBy=default.target

使用

#刷新服务列表:
systemctl daemon-reload

#设置开机自启
systemctl enable frpc
#关闭开机自启
systemctl disable frpc

#启动服务
systemctl start frpc
#停止服务
systemctl stop frpc