本文目录导读:

一个适用于 Linux,另一个适用于 Windows。
Linux 版本 (使用 bash + systemd 或 crontab)
推荐使用 systemd timer,因为它比 crontab 更可靠且易于管理日志。
方案 A: 使用 systemd timer (最推荐)
创建脚本文件 /usr/local/bin/reboot_with_log.sh
sudo nano /usr/local/bin/reboot_with_log.sh
#!/bin/bash # 日志文件路径 LOG_FILE="/var/log/reboot_history.log" # 获取当前时间 CURRENT_TIME=$(date '+%Y-%m-%d %H:%M:%S') # 记录重启前的日志(带时间戳) echo "[$CURRENT_TIME] System is about to reboot. Reason: Scheduled task." >> "$LOG_FILE" # 执行重启命令 /sbin/reboot
赋予执行权限
sudo chmod +x /usr/local/bin/reboot_with_log.sh
创建 systemd service 文件
sudo nano /etc/systemd/system/reboot-with-log.service
[Unit] Description=Reboot system with logging [Service] Type=oneshot ExecStart=/usr/local/bin/reboot_with_log.sh
创建 systemd timer 文件
sudo nano /etc/systemd/system/reboot-with-log.timer
以每天早上 3:00 重启为例):
[Unit] Description=Schedule reboot with log at 3:00 AM daily [Timer] OnCalendar=daily # 指定具体时间:每天 3:00 # 格式:星期 时:分:秒 OnCalendar=*-*-* 03:00:00 # 防止丢失任务 Persistent=true [Install] WantedBy=timers.target
启用并启动定时器
sudo systemctl daemon-reload sudo systemctl enable reboot-with-log.timer sudo systemctl start reboot-with-log.timer
查看日志
cat /var/log/reboot_history.log
查看定时器状态
sudo systemctl list-timers --all | grep reboot
方案 B: 使用 crontab (更简单)
创建脚本文件 /usr/local/bin/reboot_with_log.sh
#!/bin/bash LOG_FILE="/var/log/reboot_history.log" CURRENT_TIME=$(date '+%Y-%m-%d %H:%M:%S') echo "[$CURRENT_TIME] System is about to reboot. Reason: Cron task." >> "$LOG_FILE" /sbin/reboot
赋予执行权限
sudo chmod +x /usr/local/bin/reboot_with_log.sh
编辑 crontab
sudo crontab -e
添加以下行(每天凌晨 3:00 重启):
0 3 * * * /usr/local/bin/reboot_with_log.sh
查看日志
cat /var/log/reboot_history.log
Windows 版本 (使用 PowerShell + 任务计划程序)
方法:创建 PowerShell 脚本 + 任务计划程序
创建脚本文件 C:\Scripts\RebootWithLog.ps1
# 日志文件路径 $LogFile = "C:\Logs\RebootHistory.log" # 获取当前时间 $CurrentTime = Get-Date -Format "yyyy-MM-dd HH:mm:ss" # 写入日志 "[$CurrentTime] System is about to reboot. Reason: Scheduled task." | Out-File -FilePath $LogFile -Append # 重启计算机 (立即重启,无延迟) Restart-Computer -Force
创建日志目录
New-Item -ItemType Directory -Force -Path "C:\Logs"
设置脚本执行策略
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
创建计划任务 (每天凌晨 3:00 重启)
打开 PowerShell 管理员模式,执行:
# 创建触发器(每天 3:00) $Trigger = New-ScheduledTaskTrigger -Daily -At "03:00" # 定义操作(启动 PowerShell 执行脚本) $Action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-File `"C:\Scripts\RebootWithLog.ps1`"" # 设置任务(以 SYSTEM 身份运行,最高权限) $Settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable # 注册任务 Register-ScheduledTask -TaskName "ScheduledRebootWithLog" -Trigger $Trigger -Action $Action -Settings $Settings -RunLevel Highest -User "NT AUTHORITY\SYSTEM"
查看日志
Get-Content "C:\Logs\RebootHistory.log"
日志查看与分析示例
Linux 查看日志(带时间戳反查)
# 实时查看最后 10 行 tail -f /var/log/reboot_history.log # 搜索某次重启 grep "2025-03-23 03:00" /var/log/reboot_history.log # 统计重启次数 wc -l /var/log/reboot_history.log
Windows 查看日志
# 显示所有日志 Get-Content "C:\Logs\RebootHistory.log" # 实时监控(需要 PowerShell 7+) Get-Content "C:\Logs\RebootHistory.log" -Wait
注意事项
-
确保脚本路径和日志目录的权限正确:
- Linux:脚本需
chmod +x,日志文件所在目录需有写入权限。 - Windows:脚本需以管理员权限运行,日志目录需有写入权限。
- Linux:脚本需
-
测试脚本:
- Linux:手动执行
sudo /usr/local/bin/reboot_with_log.sh测试。 - Windows:手动执行
C:\Scripts\RebootWithLog.ps1测试(注意会立刻重启)。
- Linux:手动执行
-
修改重启时间:
- Linux systemd timer:编辑
OnCalendar行,sudo systemctl daemon-reload。 - Linux crontab:直接修改
sudo crontab -e。 - Windows:在任务计划程序中修改触发器时间。
- Linux systemd timer:编辑
-
取消定时重启:
- Linux systemd:
sudo systemctl disable reboot-with-log.timer - Linux crontab:
sudo crontab -e注释掉或删除该行。 - Windows:
Unregister-ScheduledTask -TaskName "ScheduledRebootWithLog"
- Linux systemd:
选择适合你系统的方案即可,如果需要更复杂的日志记录(如记录重启原因、IP 地址等),可以进一步扩展脚本。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播