linux关机触发脚本Word下载.docx
- 文档编号:8137005
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:12
- 大小:22.15KB
linux关机触发脚本Word下载.docx
《linux关机触发脚本Word下载.docx》由会员分享,可在线阅读,更多相关《linux关机触发脚本Word下载.docx(12页珍藏版)》请在冰点文库上搜索。
2,rc0.d/rc6.d目录下的第一个命令开始运行,锁定系统文件为关机作准备
3,rc0.d/rc6.d目录下的第二个命令运行,卸载除根文件系统以外的所有文件系统(
如挂载的windows分区)
4,rc0.d/rc6.d中的命令将把根文件系统重新挂载为只读属性
5,rc0.d/rc6.d中的命令调用sync程序把缓存中的数据写入文件系统
6,最后的命令是重新启动或者关闭内核程序
============================================
现在把实现过程描述如下:
先写一个脚本放在/etc/rc.d/init.d下,chmod-f777,再ln-s到/etc/rc.d/rc0.d/K01脚本名与/etc/rc.d/rc6.d/K01脚本名,同时也要ln-s到/etc/rc.d/rc3.d/S99脚本名与/etc/rc.d/rc5.d/S99脚本名。
K开头的代表系统关闭的时候执行,S开头的代表开机的时候执行。
刚开始一直没搞明白,后来从网上看到,执行K脚本的时候会查询/var/lock/subsys/下是否有与K开头脚本同名的空文件名,如果没有就不去执行,所以要按照服务器脚本编写的规范,启动的时候要在/var/lock/subsys/先touch一个与K01后面同名的空文件.同时也要调用/etc/rc.d/init.d/functions能够接受star与stop命令信号,具体可以参考/etc/rc.d/rc文件,本人是在/etc/rc.d/rc0.d/K01yum基础上改写实现的。
shell如何在完成某项任务后执行某个动作?
如传输文件完成后关机。
添加评论
分享
默认排序按时间排序
5个回答
2赞同反对,不会显示你的姓名
王滨
Python,
2人赞同
直接在脚本里加上halt就好了
比如
#!
/bin/bash
wget
http:
//whatever/xxx.tar.gz
do_whatever
halt
当然halt要在root下执行才会有效果
发布于2012-10-22
添加评论
感谢
收藏
•
没有帮助
举报
作者保留权利
0赞同反对,不会显示你的姓名
Belleve编程、JavaScript话题优秀回答者
炼金术士
补一个Powershell的
do-something;
stop-computer
发布于2014-01-18
匿名用户
Dosomething &
&
halt
发布于2014-01-16
1条评论
1赞同反对,不会显示你的姓名
1人赞同
shell就是把一组命令放在一个文件中按照特定模式执行,里面可出现循环变量替换,函数,case,逐条堆积,思路清晰先什么后什么,执行即可!
#!
/bin/sh
echo“…………”
if[$?
-eq0];
then
do
init0
done
…………………………………邪恶的分割线………………
补充如下:
上面是以前写的现在是这么写.人是要进步的.
#
if/bin/cptest1test2>
/dev/null2>
1;
if
编辑于2015-11-19
3条评论
知乎用户
年轻人最重要的品质是不撸
cpfilelime
if[$?
-eq0];
then#如果上面一个命令执行成功,则执行下面这个。
shutdown-pnow
fi
Linux下如何在特定时间执行特定任务
1仅执行一次的任务
2循环执行的任务
3可唤醒停机期间的工作任务
1
仅执行一次的任务
所需程序
atd服务
at命令
启动atd
#serviceatdrestart
atdstop/waiting
atdstart/running,process11031
千万注意要在root下执行,不然会提示Rejectedsendmessage.
at的使用
使用at的权限(因为安全性考虑最好设置)
在/etc/at.allow中设置可以使用at的账号
在/etc/at.deny中设置不可以使用at的账号
示例
1分钟后执行mkdir
$atnow+1minutes
warning:
commandswillbeexecutedusing/bin/sh
at>
mkdirhelloAt
<
EOT>
job1atWedFeb614:
36:
002013
查看工作
#at-c2
#atrunuid=0gid=0
#...
$mkdirhelloAt
特定时间关机
$at14:
002013-2-9
/bin/sync
/sbin/shutdown-hnow
job4atSatFeb914:
00:
at如何执行
输入输出:
标准输入输出会重定向到mailbox里,所以执行echo"
hello"
在终端下是看不到的
后台工作:
系统会将at工作独立于shell,交给atd程序接管,即使关了shell也没关系
查询与删除at中的工作
查询:
atq
删除:
atrmjobid
batch:
和at相似,只是在cpu负载低时才执行
2
循环执行的任务
crontab
权限限制
/etc/cron.allow
/etc/cron.deny
$crontab-e#添加任务
进入编辑环境,使用vim编辑
格式:
#mhdommondowcommand
m:
minute,h:
hour,dom:
dayofmonth
mon:
month,dow:
dayofweek
任务示例:
05**1tar-zcf
var/backups/home.tgz/home
*表示任何时间
$crontab-l#查询任务
$crontab-r#删除任务
3
可唤醒停机期间的工作任务
anacron:
crontab任务因为关机没有执行,anacron可以在开机时检测没有执行的crontab任务,都执行一遍
Linux启动/关机时执行脚本
2011-06-1317:
48:
35
分类:
LINUX
在.login中执行相应命令,或在.bashrc(用tcshshell,在.tcshrc)里写命令。
是不行的,.login是在用户登录时执行,用户可能在本地无需登录,或者在远程多个用户登录,多次登录;
而.tcshrc是在shell启动时执行,登录后用户一般会多次打开shell,这样该命令或程序就会被多次执行。
Linux启动顺序:
1、BIOS自检
2、运行系统内核并检测硬件
3、运行系统的第一个进程init
4、init读取系统引导配置文件/etc/inittab中的信息进行初始化
/etc/rc.d/rc.sysinit------系统初始化脚本
/etc/rc.d/rcX.d/[KS]*------根据运行级别配置服务
/etc/rc.d/rc.local---------执行本地特殊配置
其它---------不同运行级别的特殊服务
Linux启动运行init程序来启动相关程序初始化,与启动相关的一个概念是运行级,运行级是操作系统当前运行的级别,在不同运行级别上可以定义属于该运行级的启动程序,系统的运行级别可以在/etc/inittab文件指定,与运行级相关运行程序通过从源/etc/rc.d/init.d下链接到目的/etc/rcX.d,这里X为系统的默认运行级别,因此,默认的启动脚本放在/etc/rc.d/init.d下。
事例,任务在启动时运行mm:
方法:
1.建立自启动脚本/etc/rc.d/init.d/mm,内容为:
/usr/local/bin/*
(注:
此内容替换为你想执行的命令)
设置文件的属性为可执行:
#chmod+x/etc/rc.d/init.d/mm
2.查看计算机运行级别,在文件/etc/inittab里看到id:
3:
initdefault:
,则此系统运行级别为3。
3.到/etc/rc3.d目录下,把你要执行的可执行文件做一个软连接,而且在命名的时候要以大写S字母开头,S之后的数字大小代表执行顺序的先后,数字越大越靠后执行。
#ln-s/etc/rc.d/init.d/mm/etc/rc3.d/S100mm
#ln-s/etc/rc.d/init.d/mm/etc/rc0.d/K20mm
关机执行脚本:
1.vi/etc/init.d/mm
#!
ls>
(此处把ls替换为你自己的内容)
注意:
此处的顺序不能更改,否则达不到想要的效果。
此时先将标准输出重定向到/dev/null,然后将标准错误重定向到标准输出,由于标准输出已经重定向到了/dev/null,因此标准错误也会重定向到/dev/null。
2.chmod+x/etc/init.d/mm
3.ln-s/etc/init.d/mm
/etc/rc6.d/K01mm/var/lock/subsys/
4.当你在关机时一切在悄无声息的进行着。
注:
(1)本人在实验时,做关机运行脚本不成功解决方法。
是在/var/lock/subsys/中建立相同的文件mm,或拷贝或者直接软链接过来ln-s/etc/init.d/mm/var/lock/subsys/
。
(2)若在字符界面下只设置开机启动,只在rc3.d目录下链接S100filename便可。
如:
ln-s/etc/init.d/filename
/etc/rc3.d/S100filename
1.在/etc/rc.d/init.d/下创建脚本,要遵守servicescript的标准;
例如:
vi/etc/rc.d/init.d/gfs
case"
$1"
in
restart)
echo"
umount/data"
umount/data
mount/data"
touch/var/lock/subsys/gfs
mount-tgfs2/dev/gfsvg/gfs/data
;
;
start)
stop)
*)
Usage:
$0{restart|start|stop}"
exit1
esac
exit1
2.修改执行脚本权限
chown-Rroot/etc/rc.d/init.d/gfs
chmod700/etc/rc.d/init.d/gfs
3.创建开机启动的符号连接(S是start的简写、代表启动、K是kill的简写、代表关闭。
数字代表启动的顺序)
ln-s/etc/rc.d/init.d/gfs/etc/rc.d/rc0.d/S60gfs
ln-s/etc/rc.d/init.d/gfs/etc/rc.d/rc1.d/S60gfs
ln-s/etc/rc.d/init.d/gfs/etc/rc.d/rc2.d/S60gfs
ln-s/etc/rc.d/init.d/gfs/etc/rc.d/rc3.d/S60gfs
ln-s/etc/rc.d/init.d/gfs/etc/rc.d/rc4.d/S60gfs
ln-s/etc/rc.d/init.d/gfs/etc/rc.d/rc5.d/S60gfs
ln-s/etc/rc.d/init.d/gfs/etc/rc.d/rc6.d/S60gfs
4.创建关机执行
1)在/var/lock/subsys空文件
2)创建关机符号连接
ln-s/etc/rc.d/init.d/gfs/etc/rc.d/rc0.d/K60gfs
ln-s/etc/rc.d/init.d/gfs/etc/rc.d/rc1.d/K60gfs
ln-s/etc/rc.d/init.d/gfs/etc/rc.d/rc2.d/K60gfs
ln-s/etc/rc.d/init.d/gfs/etc/rc.d/rc3.d/K60gfs
ln-s/etc/rc.d/init.d/gfs/etc/rc.d/rc4.d/K60gfs
ln-s/etc/rc.d/init.d/gfs/etc/rc.d/rc5.d/K60gfs
ln-s/etc/rc.d/init.d/gfs/etc/rc.d/rc6.d/K60gfs
linux下常用的关机命令有:
shutdown、halt、poweroff、init;
重启命令有:
reboot。
下面本文就主要介绍一些常用的关机命令以及各种关机命令之间的区别和具体用法。
首先来看一下linux下比较常用的一些关机命令
关机命令:
1、halt
立刻关机2、poweroff
立刻关机3、shutdown-hnow立刻关机(root用户使用)4、shutdown-h1010分钟后自动关机如果是通过shutdown命令设置关机的话,可以用shutdown-c命令取消重启
重启命令:
1、reboot2、shutdown-rnow立刻重启(root用户使用)3、shutdown-r10过10分钟自动重启(root用户使用)
4、shutdown-r20:
35在时间为20:
35时候重启(root用户使用)如果是通过shutdown命令设置重启的话,可以用shutdown-c命令取消重启
下面我们来看看linux的这些具体的关机命令之间的区别和各自的用法
1.shutdown安全的关机命令
对于shutdown命令,它是大家都推荐的一个安全的命令,通过参数-h或-r的配合来完成关机或重启。
不过在linux系统中只有拥有root权限才可以使用这个命令。
所以,虽然大家都推荐用这个命令,但是这个命令用起来真的不太方便:
想要用这个命令吗?
先去获得root权限吧。
shutdown执行关机,是送信号给init,要求它改变运行级别,以此来关机。
关机或重启实际上是运行级别的调整,所以我们也可以用init直接调整运行级别来进行关机或重启。
使用这个命令时,机器立即关机或重启。
它也需要root权限。
那么为什么说shutdown命令是安全地将系统关机呢?
实际中有些用户会使用直接断掉电源的方式来关闭linux,这是十分危险的。
因为linux与windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失使系统处于不稳定的状态。
甚至在有的系统中会损坏硬件设备。
而在系统关机前使用shutdown命令,系统管理员会通知所有登录的用户系统将要关闭。
并且login指令会被冻结,即新的用户不能再登录。
直接关机或者延迟一定的时间才关机都是可能的,还有可能是重启。
这是由所有进程〔process〕都会收到系统所送达的信号〔signal〕决定的。
shutdown执行它的工作是送信号〔signal〕给init程序,要求它改变runlevel。
runlevel0被用来停机〔halt〕,runlevel6是用来重新激活〔reboot〕系统,而runlevel1则是被用来让系统进入管理工作可以进行的状态,这是预设的。
假定没有-h也没有-r参数给shutdown。
要想了解在停机〔halt〕或者重新开机〔reboot〕过程中做了哪些动作?
你可以在这个文件/etc/inittab里看到这些runlevels相关的资料。
shutdown参数说明:
[-t]在改变到其它runlevel之前,告诉init多久以后关机。
[-r]重启计算器。
[-k]并不真正关机,只是送警告信号给每位登录者〔login〕。
[-h]关机后关闭电源〔halt〕。
[-n]不用init而是自己来关机。
不鼓励使用这个选项,而且该选项所产生的后果往往不总是你所预期得到的。
[-c]cancelcurrentprocess取消目前正在执行的关机程序。
所以这个选项当然没有时间参数,但是可以输入一个用来解释的讯息,而这信息将会送到每位使用者。
[-f]在重启计算器〔reboot〕时忽略fsck。
[-F]在重启计算器〔reboot〕时强迫fsck。
[-time]设定关机〔shutdown〕前的时间。
2.halt最简单的关机命令
用halt命令来关机时,实际调用的是shutdown-h。
halt执行时将杀死应用进程,执行sync系统调用文件系统写操作完成后就会停止内核。
halt参数说明:
[-n]防止sync系统调用,它用在用fsck修补根分区之后,以阻止内核用老版本的超级块〔superblock〕覆盖修补过的超级块。
[-w]并不是真正的重启或关机,只是写wtmp〔/var/log/wtmp〕纪录。
[-d]不写wtmp纪录〔已包含在选项[-n]中〕。
[-f]没有调用shutdown而强制关机或重启。
[-i]关机〔或重启〕前关掉所有的网络接口。
[-p]该选项为缺省选项。
就是关机时调用poweroff。
3.poweroff常用的关机命令
对于poweroff,网上说它是halt命令的链接,基本用法和halt差不多,这里就不多说了。
4.init
init是所有进程的祖先,他是Linux系统操作中不可缺少的程序之一。
它的进程号始终为1,所以发送TERM信号给init会终止所有的用户进程,守护进程等。
shutdown就是使用这种机制。
init定义了8个运行级别(runlevel),init0为关机,init1为重启。
5.reboot重启命令
reboot的工作过程差不多跟halt一样。
不过它是引发主机重启,而halt是关机。
它的参数与halt相差不多。
============
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux 关机 触发 脚本