• 那是云首页
  • 快捷导航
  • 更多
    设为首页收藏本站
  • |
花生壳

#楼主# 2020-9-22 18:37

跳转到指定楼层
本帖最后由 huauge 于 2020-9-30 16:43 编辑

注1:系列教程所需软件为Putty和Winscp,请先各自官网下载好后再参考教程操作。
注2:本人小白一名,略懂一点电脑常识,入了qnap的坑,折腾一番
后续教程预告(主要涉及docker的应用):
教程2:联通宽带myqnapcloud.cn域名通过443端口使用docker acme.sh容器自动申请ssl证书与自动安装
教程3:bt-tracker可以自动更新的Aria2的docker安装,及开启ssl连接(与教程2有关联关系)
教程4:docker安装百度云网盘vnc版本,并开启vnc连接验证的方法
(2020-9-27交完作业)

【正文】
参考了网上大神们的配置(如下),将两位大神的成果进行整合,实现开机运行和定时运行结合的方式,更加完善。欢迎各位大大指正。
https://post.smzdm.com/p/a6lr085z/
https://blog.csdn.net/hanziyuan08/article/details/104933718/https://www.jianshu.com/p/74f65ac27a2a  (20200930更新,参考其他系统大神调整威联通的监控脚本,每10秒检查,硬盘状态变更才会将状态写入SSD,记录清晰且保护硬盘)


先说明下我的机器配置:
SSD硬盘作为系统盘,机械硬盘Toshiba8T暂时1块,均设置为静态卷。因此SSD硬盘为sda,Toshiba硬盘为sdb,后续再加硬盘应该就是sdc和sdd了。

【设置步骤】具体原理就不多说了,可参考如上大神的帖子,这里只讲操作步骤
一、设置开机自动运行断开raid1
1.txt文编编辑器新建autorun.sh脚本:将如下命令拷贝到新建记事本,另存为autorun.sh

#!/bin/bash
echo "Disconnecting md9"
mdadm /dev/md9 --fail /dev/sdb1  #sdb对应机械硬盘,可用命令mdadm -D /dev/md9查看有几个硬盘,就分别加几行,如:mdadm /dev/md9 --fail /dev/sdc1;mdadm /dev/md9 --fail /dev/sdd1
echo "Disconnecting md13"
mdadm /dev/md13 --fail /dev/sdb4 #同上



2.puTTY登录nas,输入命令:mount $(/sbin/hal_app --get_boot_pd port_id=0)6 tmp/config
3.winscp登录nas,上传步骤1中的autorun.sh到NAS的/tmp/config文件夹
4.再到puTTY输入
vi /share/Download/my_cron/readd_raid1.sh
:set ff   #若显示为unix则输入:wq保存退出继续步骤5;若显示为dos则执行下面的命令
:set ff=unix
:wq #保存退出

5.设置脚本可执行:putty中输入chmod +x /tmp/config/autorun.sh 回车
6.在NAS上设置自动运行,控制面板-硬件-用户自定义命令处查看脚本并应用(参考https://post.smzdm.com/p/a6lr085z/,步骤12;在NAS上设置自动运行用户自定义命令处查看脚本)
7.设置好后重启NAS,再用puTTY查看自动运行脚本是否成功,分别输入命令:mdadm -D /dev/md9和mdadm -D /dev/md13,如果分别显示如下一条内容则表示成功。
捕获.JPG

二、设置每日定时连接、断开和监视
1.新建对应的3个脚本,方法如【步骤一、1】,脚本命令详见https://blog.csdn.net/hanziyuan08/article/details/104933718/,分别如下
文件名:fail_raid1.sh(断开系统 RAID1)
#!/bin/shmdadm /dev/md9 --fail /dev/sdb1mdadm /dev/md13 --fail /dev/sdb4
#若有多个硬盘依次添加命令

文件名:readd_raid1.sh(恢复系统 RAID1)
#!/bin/sh
mdadm /dev/md9 --re-add /dev/sdb1mdadm /dev/md13 --re-add /dev/sdb4
#若有多个硬盘依次添加命令


文件名:raid1_monitor.sh(监控 HDD 是否休眠)参考其他系统大神的脚本,调整为适合QNAP的脚本,其中艰酸小白难以言表,全是泪啊
#!/bin/bash
path="/share/Download/my_cron"   #这里一定要改成存放的实际路径,crontab比较坑,不支持相对路径没有办法
echo $path
if [ ! -d "$path/Disks" ];then
    mkdir $path/Disks;
fi
dsk=`ls /dev/|grep 'sd[b-b]$'`  #若有多个硬盘更改[b-b],如[a-z]   
for (( t=1;t<6;t++))
do
    echo `date +%c`   
    for i in $dsk;   
    do   
        echo -n "/dev/$i : " ;      
        s=`hdparm -C /dev/$i | grep state`;
        s_=$(echo "$s"| sed 's/ //g');
        if [ -f "$path/Disks/$i.status" ];then
            st=`cat $path/Disks/$i.status`;
        else
            st='';
        fi
        if  [ "$s_" != "$st" ] ;then
            echo $s| sed 's/ //g'>$path/Disks/$i.status;
            echo `date` "【/dev/$i】"  $s>>$path/Disks/$i.chkdisk_log.txt      
        fi   
        echo $s;
    done  
    sleep 10
done
exit

2.将以上脚本保存在你的SDD盘中,路径记清楚(可在winscp中查看),同时修改上面raid1_monitor.sh中的路径保持一致
3.putty中输入命令查看sh文件是否为unix,方法如【步骤一、4】
4.设置定时任务,路径与步骤2保存脚本的路径一致:
#设置定时任务之前,先逐条测试脚本是否可执行,在putty中分别输入下面的脚本(如直接输入/share/CACHEDEV1_DATA/my_cron/readd_raid1.sh),设置可执行脚本方法如【步骤一、5】
# 每天 2 点40分恢复系统 RAID1
echo "40 2 * * * /bin/bash /share/CACHEDEV1_DATA/my_cron/readd_raid1.sh" >> /etc/config/crontab
# 每天 2点 55 分断开系统 RAID1
echo "55 2 * * * /bin/bash /share/Download/CACHEDEV1_DATA/disconnect_raid1.sh" >> /etc/config/crontab
# 每 1 分钟运行下指令,10秒循环检查硬盘状态,变更结果保存在 raid1_monitor.log 中
echo "*/1 * * * * /bin/bash /share/CACHEDEV1_DATA/my_cron/raid1_monitor.sh" >> /etc/config/crontab
# 重启 crontab
crontab /etc/config/crontab && /etc/init.d/crond.sh restart


5.查看定时任务命令:crontab -l
6.删除定时任务命令:
输入vi /etc/config/crontab后,上下移动光标后,按del键将对应一行的命令删除后,输入:wq保存退出;
强迫症删除空白行使用命令 sed -i '/^$/d' /etc/config/crontab
最后别忘了输入命令:crontab /etc/config/crontab && /etc/init.d/crond.sh restart,定时任务才能保存




补充内容 (2020-12-14 14:16):
第一部分第2步命令写漏了“/”,应为:mount $(/sbin/hal_app --get_boot_pd port_id=0)6 /tmp/config
第4步命令里面路径写错了,把vi /share/Download/my_cron/readd_raid1.sh改成vi /tmp/config/autorun.sh。
那是云论坛 - 国内知名的NAS交流平台
http://www.nasyun.com
分享淘帖
回复 印象

使用道具

0

精华

26

回帖

215

积分

入门用户

Rank: 1

云币
0
贡献
2
活跃
191
精华
0
suluoniu 发表于 2020-10-30 19:36 来自 中国北京
mount $(/sbin/hal_app --get_boot_pd port_id=0)6 tmp/config  这个6是不是要变?我这条指令报错

点评

报错内容发一下看看。这个命令我是直接用网上大神的,我没报过错  详情 回复 发表于 2020-11-8 06:52
回复 支持 反对 印象

使用道具 举报

0

精华

13

回帖

273

积分

入门用户

Rank: 1

云币
0
贡献
16
活跃
184
精华
0
huauge 发表于 2020-11-8 06:52 来自 中国上海
suluoniu 发表于 2020-10-30 19:36
mount $(/sbin/hal_app --get_boot_pd port_id=0)6 tmp/config  这个6是不是要变?我这条指令报错

报错内容发一下看看。这个命令我是直接用网上大神的,我没报过错
回复 支持 反对 印象

使用道具 举报

0

精华

13

回帖

273

积分

入门用户

Rank: 1

云币
0
贡献
16
活跃
184
精华
0
huauge 发表于 2020-12-4 17:19 来自 中国上海
第一部分第4步命令里面路径写错了,把vi /share/Download/my_cron/readd_raid1.sh改成vi /tmp/config/autorun.sh。

忘了怎么编辑原帖了,在此回帖说明一下。
回复 支持 反对 印象

使用道具 举报

0

精华

13

回帖

273

积分

入门用户

Rank: 1

云币
0
贡献
16
活跃
184
精华
0
huauge 发表于 2020-12-4 17:20 来自 中国上海
本帖最后由 huauge 于 2020-12-14 14:15 编辑

第一部分第2步命令写漏了“/”,应为:mount $(/sbin/hal_app --get_boot_pd port_id=0)6 /tmp/config
第4步命令里面路径写错了,把vi /share/Download/my_cron/readd_raid1.sh改成vi /tmp/config/autorun.sh。
回复 支持 反对 印象

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回列表 搜索 官方QQ群
懒人地图| 手机版|小黑屋| 智能生活 , 上那是云 |闽ICP备2020018196号-1 |网站地图