📜  ubuntu 自动关机 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:48:08.393000             🧑  作者: Mango

Ubuntu自动关机 - Shell/Bash

如果你的Ubuntu系统需要在特定的时间或在某些特定条件下自动关机,你可以使用Shell/Bash脚本编写一个自动关机的程序。这个程序可以通过crontab或其他的定时任务来实现自动化。

编写自动关机的脚本

以下是一个简单的Shell/Bash脚本,可以在特定的时间自动关机你的Ubuntu系统。

#!/bin/bash

# 设置关机时间(24小时格式)
shutdown_time="23:30"

# 循环等待关机时间
while true; do
  # 获取当前时间
  current_time=$(date +%H:%M)
  
  # 如果当前时间等于关机时间,则执行关机命令
  if [ "$current_time" == "$shutdown_time" ]; then
    sudo shutdown -h now
  fi
  
  # 等待1分钟再次检查当前时间
  sleep 60
done

以上脚本会在每分钟检查一次当前时间,并判断是否到达关机时间。如果已经到达关机时间,则执行关机命令。如果还没有到达关机时间,则等待1分钟后再次检查当前时间。

使用crontab进行定时任务

要使用crontab进行定时任务,请按照以下步骤进行操作。

  1. 打开终端,并输入以下命令以编辑crontab。
crontab -e
  1. 在crontab编辑器中添加以下内容。
# 每天晚上11:30自动关机
30 23 * * * /path/to/shutdown_script.sh

请将/path/to/shutdown_script.sh替换为你的自动关机脚本的实际路径。例如,如果你的自动关机脚本被保存在/home/user目录下并命名为shutdown_script.sh,则应将上面的命令替换为以下内容。

30 23 * * * /home/user/shutdown_script.sh
  1. 保存并退出crontab编辑器。

现在,你的Ubuntu系统将在每天晚上11:30自动关机。

注意事项
  • 如果你想更改关机时间,请修改脚本中的shutdown_time变量。
  • 确保你已在sudoers文件中允许了你的用户名执行sudo命令。你可以通过运行以下命令来检查sudoers文件的内容。
sudo visudo
  • 脚本执行的速度会受到系统性能、负载和其他进程的影响。因此,在设置关机时间时,请避免将其设置得过于接近当前时间,以免过早地执行关机命令。

以上为使用Shell/Bash编写Ubuntu自动关机脚本的基础知识和步骤,希望能对你有所帮助。