linux系统在控制台下每天的定时关机指令如何编写?
发布网友
发布时间:2022-04-21 07:39
我来回答
共1个回答
热心网友
时间:2022-04-06 10:33
第一种方法:
用crontab命令就可以了,下面看一下它的详细用法。名称
:
crontab
使用权限
:
所有使用者
使用方式
:
crontab
[
-u
user
]
file
crontab
[
-u
user
]
{
-l
|
-r
|
-e
}
说明
:
crontab
是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。-u
user
是指设定指定
user
的时程表,这个前提是你必须要有其权限(比如说是
root)才能够指定他人的时程表。如果不使用
-u
user
的话,就是表示设定自己的时程表。
餐数
:
-e
:
执行文字编辑器来设定时程表,内定的文字编辑器是
VI,如果你想用别的文字编辑器,则请先设定
VISUAL
环境变数来指定使用那个文字编辑器(比如说
setenv
VISUAL
joe)
-r
:
删除目前的时程表
-l
:
列出目前的时程表
时程表的格式如下
:
f1
f2
f3
f4
f5
program
其中
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
的方式来设定时程表。
例子
:
每月每天每小时的第
0
分钟执行一次
/bin/ls
:
0
7
*
*
*
/bin/ls
在
12
月内,
每天的早上
6
点到
12
点中,每隔
20
分钟执行一次
/usr/bin/backup
:
0
6-12/3
*
12
*
/usr/bin/backup
周一到周五每天下午
5:00
寄一封信给
alex@domain.name
:
0
17
*
*
1-5
mail
-s
"hi"
alex@domain.name
<
/tmp/maildata
每月每天的午夜
0
点
20
分,
2
点
20
分,
4
点
20
分....执行
echo
"haha"
20
0-23/2
*
*
*
echo
"haha"
注意
:
当程序在你所指定的时间执行后,系统会寄一封信给你,显示该程序执行的内容,若是你不希望收到这样的信,请在每一行空一格之后加上
>
/dev/null
2>&1
即可
第二种方法:
使用shutdown定时关机的问题
shutdown:
invalid
option
--
-
Usage:
shutdown
[-akrhfnc]
[-t
secs]
time
[warning
message]
-a:
use
/etc/shutdown.allow
-k:
don't
really
shutdown,
only
warn.
-r:
reboot
after
shutdown.
-h:
halt
after
shutdown.
-f:
do
a
'fast'
reboot
(skip
fsck).
-F:
Force
fsck
on
reboot.
-n:
do
not
go
through
"init"
but
go
down
real
fast.
-c:
cancel
a
running
shutdown.
-t
secs:
delay
between
warning
and
kill
signal.
**
the
"time"
argument
is
mandatory!
(try
"now")
**
我是这样的shutdown
-t
54000
就是运行15小时后自动关机
这样行吗?顺便问下,还有什么更好的方法自动关机吗?