本帖最后由 huauge 于 2020-9-29 10:46 编辑
注1:系列教程所需软件为Putty和Winscp,请先各自官网下载好后再参考教程操作。
注2:本人小白一名,略懂一点电脑常识
【正文】
参考了网上大神们的配置(如下),将两位大神的成果进行整合,实现开机运行和定时运行结合的方式,更加完善。欢迎各位大大指正。
https://post.smzdm.com/p/a6lr085z/
https://blog.csdn.net/hanziyuan08/article/details/104933718/
先说明下我的机器配置:
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,如果分别显示如下一条内容则表示成功。
二、设置每日定时连接、断开和监视
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 是否休眠)
#!/bin/sh
echo `date` 【自定义硬盘名称】 `hdparm -C /dev/sdb | grep state` >> /share/CACHEDEV1_DATA/my_cron/raid1_monitor_log.txt 2>&1
#若有多个硬盘依次添加命令
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
# 每 10 分钟检测 HDD 是否休眠,结果保存在 raid1_monitor.log 中
echo "*/10 * * * * /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,定时任务才能保存
|
|