如何自动关机

周海汉/文 2009.9.8

http://blog.csdn.net/ablo_zhou

ablozhou#gmail.com

 

 

摘要:Windows 系统和Linux 系统某些情况下都需要计划中的自动关机。本文介绍定时自动关机的相关方法和命令。

 

我们公司的机房比较特殊,空调没有排水的地方,所以必须人工排水,就是拿一大水桶装水,定期舀空。所以晚上和周末必须关机关空调。早上再开。下面是比较常用的windows和linux的定期关机方法。

 

1. Linux机器

Linux机器使用crontab实现自动关机。对不太了解linux的,可以用root账号在命令行执行下面的代码:

 
(crontab -l ; echo "0 19 * * * /sbin/init 0") | crontab
 
实现的是到晚上19点linux自动关机。该命令的意思是先列出crontab的内容,再将19点关机的命令补充后一起放到crontab里。
 
1.1 crontab的用法
使用方式 : crontab [ -u user ] file crontab [-u user] [-l | -r | -e][-i] [-s] ---------------------- -u user 用户下的crontab,缺省当前用户。Linux每个用户可以有自己的crontab。 file 用指定文件替换当前crontab -l : 列出用户crontab内容 -r : 删除crontab -e : 编辑crontab -i : 配合-r 删除时会有确认信息 -s : 安全模式 时程表的格式如下 : f1 f2 f3 f4 f5 program 分钟 小时 月份中的第几日 月份 星期中的第几天 要执行的程序。 当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其余类推 当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推 当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余类推 当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其余类推 使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。 例: 每晚19点关机 #crontab -e 0 19 * * * /sbin/init 0 每周1-5 的18:30 备份 30 18 * * 1-5 /root/backup 每个月下旬3天清一次log * * 20-31/3 * * rm -f /var/log/messages 如果发现crontab 不按设想的执行,请检查脚本和命令是否正确,是否有权限执行,路径和环境变量是否正确。echo 之类的命令并不会输出到屏幕上。
 

2 Windows

windows可以用任务计划和at命令来完成定时关机和定时执行任务。

2.1 shutdown 命令

在命令行下,可以执行shutdown命令来关机。

shutdown用法:

C:/Documents and Settings/zhouhh>shutdown /? 用法: shutdown [-i | -l | -s | -r | -a] [-f] [-m //computername] [-t xx] [-c "co mment"] [-d up:xx:yy] 没有参数 显示此消息(与 ? 相同) -i 显示 GUI 界面,必须是第一个选项 -l 注销(不能与选项 -m 一起使用) -s 关闭此计算机 -r 关闭并重启动此计算机 -a 放弃系统关机 -m //computername 远程计算机关机/重启动/放弃 -t xx 设置关闭的超时为 xx 秒 -c "comment" 关闭注释(最大 127 个字符) -f 强制运行的应用程序关闭而没有警告 -d [u][p]:xx:yy 关闭原因代码 u 是用户代码 p 是一个计划的关闭代码 xx 是一个主要原因代码(小于 256 的正整数) yy 是一个次要原因代码(小于 65536 的正整数)

 

2.2 任务计划

windows 2000/xp/2003/vista/7 控制面板里面有任务计划。也可以通过开始菜单-所有程序-附件-系统工具-任务计划找到。点击添加任务计划,找到windows/system32/shutdown.exe

在命令行中添加 shutdown -s,一步一步选好时间计划。

但任务计划有可能没有启动。在命令行下执行

net start

查找是否有“Task Scheduler”

没有则执行

net start "Task Scheduler"

 

2.3 at 命令

at命令是定时执行命令的调度程序,也需用net start检查任务计划是否启动,没有启动需启动。

at用法:

C:/Documents and Settings/zhouhh>at /? AT 命令安排在特定日期和时间运行命令和程序。 要使用 AT 命令,计划服务必须已在运行中。 AT [//computername] [ [id] [/DELETE] | /DELETE [/YES]] AT [//computername] time [/INTERACTIVE] [ /EVERY:date[,...] | /NEXT:date[,...]] "command" //computername 指定远程计算机。 如果省略这个参数, 会计划在本地计算机上运行命令。 id 指定给已计划命令的识别号。 /delete 删除某个已计划的命令。如果省略 id, 计算机上所有已计划的命令都会被删除。 /yes 不需要进一步确认时,跟删除所有作业 的命令一起使用。 time 指定运行命令的时间。 /interactive 允许作业在运行时,与当时登录的用户 桌面进行交互。 /every:date[,...] 每个月或每个星期在指定的日期运行命 令。如果省略日期,则默认为在每月的 本日运行。 /next:date[,...] 指定在下一个指定日期(如,下周四)运 行命令。如果省略日期,则默认为在每 月的本日运行。 "command" 准备运行的 Windows NT 命令或批处理 程序。

 

at  示例:

 

  • 在晚上19点关机

        at 19:00 shudown -s

  • 要想在午夜将“Documents”文件夹中的所有文件复制到“MyDocs”文件夹中,请键入下面一行,然后按 Enter:
    at 00:00 cmd /c copy C:/Documents/*.* C:/MyDocs
  • 要想在每个工作日晚上 11:00 备份“Products”服务器,请创建包含备份命令的批处理文件(例如 Backup.bat),键入下面一行,然后按 Enter 安排该备份任务:
    at //products 23:00 /every:M,T,W,Th,F backup
  • 要想安排 net share 命令上午 6:00 在“Sales”服务器上运行,并将列表重定向到“Corp”服务器上的共享文件夹“Reports”中的“Sales.txt”文件,请键入下面一行,然后按 Enter:
    at //sales 06:00 cmd /c "net share reports=d:/Documents/reports >> //corp/reports/sales.txt"
  • 查看已有计划:

    C:/Documents and Settings/zhouhh>at 状态 ID 日期 时间 命令行 ------------------------------------------------------------------------------ 1 明天 10:30 notepad.exe 2 今天 10:31 shutdown -i   

    删除计划:

    at 1 /delete

     

     

    你可能感兴趣的:(linux,windows,Date,command,服务器,任务)