飞牛系统与istoreOS定时开关机方案(含crontab知识点)

飞牛系统与istoreOS定时开关机方案(含crontab知识点)


Nas本质就是存储,但高级玩家许多都是All in One,一机宇宙海陆空,啥都能帮上忙。

除了All in One外,信任大部分Nas用户都是白天才需要用到Nas,凌晨都是陪主人一起睡觉觉的。

科技改变生活,特别是改变过去人力劳动,从手动解放成自动模式,所以,为了Nas的功耗和寿命,可以对其进行设定一个定时开关机模式,以达到自动化状态,免去手动和行走操作。


详细的帖子编辑不易

【​常规操作:点赞、收藏、关注!


准备

  • 硬件:DIY飞牛Nas主机、主力计算机
  • 软件:飞牛系统+内置虚拟机安装各种系统
  • 工具:Xshell、winscp(可选)

开关机方案介绍:

1、开机:

个人了解到的有:

  • 主板来电启动(通电自动启动)
  • RTC启动(设定开机时间,根据主板时间到点自动开启)
  • 网络唤醒(路由 / 软件APP唤醒)
  • 第三方软硬件启动(智能插座、易微联、远程开机助手APP / 小程序等等,大部分利用主板功能:来电 / 网络唤醒实现。)

根据自己情况选择,在此帖不详细赘述。如果不知道如何选择,欢迎在评论区留言,信任有许多热心的小伙伴会为你解答。以上最省钱的方案就是RTC启动,主要靠的是主板上一颗纽扣电池,然后就是保证主板时间要准确。


2、关机

  • 飞牛系统和istoreOS同属Linux,先让大家了解Linux关于“crontab”的使用规则和设置:
#  格式:* * * * * command(注意空格)
第一个“ * ”(分钟)
第二个“ * ”(小时)
第三个“ * ”(日期)
第四个“ * ”(月份)
第五个“ * ”(星期)
#  结构:五个“ * ”+  命令(command)
* * * * * command    # 每分钟执行命令
0 * * * * command    # 每小时的0分执行(每小时)
  • Example
0 2 * * * /sbin/shutdown -h now
  • 代码分析:
分钟-小时-日期-月份-星期-命令
0  2   *  *  *  /sbin/shutdown -h now
│ │  │ │ │
│ │  │ │ └─ 星期几 (0-7, 07=周日,使用07自己选择)
│ │  │ └─ 月份 (1-12)
│ │  └─ 日期 (1-31)  
│ └─ 小时 (0-23)
└─ 分钟 (0-59)
代码意思:每天200 执行关机(/sbin/shutdown -h now
  • 可用的特殊字符
#  星号 ( * ):任意值,如:
    * * * * * command    # 每分钟执行
    0 * * * * command    # 每小时的0分执行(每小时)
      
#  逗号 ( , ):指定多个值,即:A,B,C...等时间,如:
   0 8,12,18 * * * command    # 每天8:00, 12:00, 18:00执行
   0 9 * * 1,3,5 command      # 每周一、三、五的9:00执行
   
#  连字符 ( - ): 指定范围,即:A到B时间段
   0 9-17 * * * command       # 每天9点到17点之间每小时执行
   0 8 * * 1-5 command        # 周一到周五的8:00执行
        
#  斜线 ( / ) :指定间隔,即:每间隔时间
  */5 * * * * command        # 每5分钟执行
  0 */2 * * * command        # 每2小时的0分执行
  0 0 */15 * * command       # 每15天的0:00执行

# 理解:(“ * ”可以理解为数学中的未知数 / 代求的 X 数值,把求解的用数值字符代入/取代即可)


  • 添加定时任务命令:使用Xshell通过SSH连接飞牛或istoreOS系统
#  获取root权限下操作
输入:crontab -e
操作:添加你需要定时的任务命令
# 飞牛保存操作:输入ctrl+S保存,ctrl+X退出即可
# istoreOS保存操作:shift+冒号,输入wq保存退出
(注:在代码前加入“#空格”代表注释不使用)

飞牛系统与istoreOS定时开关机方案(含crontab知识点)

飞牛定时任务表

飞牛系统与istoreOS定时开关机方案(含crontab知识点)

istoreOS定时任务表


飞牛系统定时关机进阶:(搭配1panel管理软件)

# 获取root权限下操作
  • 脚本命令:
#!/bin/bash
# 记录关机时间到日志
echo "【$(date "+%Y-%m-%d %H:%M:%S")】开始执行定时关机任务..." >> /var/log/auto-shutdown.log
# 1. 停止所有正在运行的 Docker 容器
# 如果你只想停止容器而不停止Docker服务,可以使用以下命令:
echo "正在停止所有 Docker 容器..." >> /var/log/auto-shutdown.log
docker stop $(docker ps -q) >> /var/log/auto-shutdown.log 2>&1
# 2. 停止 Docker 服务(可选,但更彻底)
# 停止服务会自动停止所有容器,一般执行上一步即可,但如果你也希望Docker服务本身停止,可以撤销下面一行的注释
# systemctl stop docker >> /var/log/auto-shutdown.log 2>&1
# 等待几秒,确保容器已完全停止
sleep 5
echo "Docker 已停止,即将关闭系统..." >> /var/log/auto-shutdown.log
# 3. 关闭主机
/sbin/shutdown -h now
  • 无日志简单版:
#!/bin/bash
# 1. 停止所有正在运行的 Docker 容器
# 如果你只想停止容器而不停止Docker服务,可以使用以下命令:
docker stop $(docker ps -q) 
# 2. 停止 Docker 服务(可选,但更彻底)
# 停止服务会自动停止所有容器,一般执行上一步即可,但如果你也希望Docker服务本身停止,可以撤销下面一行的注释
# systemctl stop docker
# 等待几秒,确保容器已完全停止
sleep 5
# 3. 关闭主机
/sbin/shutdown -h now

为何要先停止Docker容器,再执行系统关机操作?

Because,系统关机顺序就是这样,在实践关机操作中,系统停止容器会等上很长时间,容器多还要以分钟计算,还不如直接利用脚本一键瞬间执行来得方便快捷。


如何使用?

根据实际情况和个人偏好选择保存和执行脚本的目录:

(注意:记得给脚本赋予执行权限,否则计划任务无法运行它。)

赋予执行权限命令:

chmod +x 目录/脚本文件.sh
sudo chmod +x 目录/脚本文件.sh

  • 操作实例:
sudo -i
输入用户密码
vi /usr/local/bin/shutdown_host.sh  # 创建并编辑
复制粘贴上面脚本
shift+冒号,输入wq保存退出
# 赋予执行权限命令:
输入:chmod +x /usr/local/bin/shutdown_host.sh

1panel管理操作:

应用中心————开发工具——安装1panel——创建计划任务

飞牛系统与istoreOS定时开关机方案(含crontab知识点)

飞牛系统与istoreOS定时开关机方案(含crontab知识点)

# 脚本内容输入如下目录:
/usr/local/bin/shutdown_host.sh

飞牛系统与istoreOS定时开关机方案(含crontab知识点)

保存

以上飞牛系统+1panel设定定时关机任务就完成了。


istoreOS定时关机设置操作:(有需求可以看)

飞牛系统与istoreOS定时开关机方案(含crontab知识点)

飞牛系统与istoreOS定时开关机方案(含crontab知识点)

飞牛系统与istoreOS定时开关机方案(含crontab知识点)


以个人飞牛系统玩法为例,关于整机定时关机操作:

1、先关闭虚拟机安装的系统(如:istoreOS旁路由、冬瓜OS);

2、在使用脚本先停止Docker容器,再关闭飞牛系统。

(注意:系统间关闭时间设置顺序。)


以上就是

飞牛系统与istoreOS定时开关机方案

以及crontab知识点

到此介绍结束,感谢大家的捧场!

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容