|
高级第三章 运行级别脚本介绍 1.运行级别 (1)运行级别目录(/etc/rN.d)。 (N为1,2,3,4,5,6) (2)查看当前运行级别,命令:runlevel (3)运行级别目录文件格式(SXXscript,KXXscript),S表示在这个运行级别下面这个脚本的服务是打开的,K表示这个脚本的服务是停止的。 2.inittab (1)运行级别控制文件(/etc/inittab) (2)修改inittab文件 其中有一行"id:5:initdefault" 5是X11的启动模式,可以在此处更改启动模式,一般服务器是选择3(带网络连接的多用户模式),0-6的运行级别表示如下: 0 关机(不要设置initdefault为0) 1 单用户模式 2 不带网络连接的多用户模式 3 带网络连接的多用户模式 4 暂时没用到 5 X11 6 重起(不要设置initdefault为6) 其中有一行"# Things to run in every runlevel"该行下面可以添加各个级别下的运行脚本。比如添加"checkdisk:3:once:/sbin/checkdisk.sh >/dev/console 2>&1" checkdisk:服务名称 3:表示当用户启动模式3时自动运行该脚本(不写的话表示所有模式下自动启动) once:启动一次 /sbin/checkdisk.sh:脚本 >/dev/console 2>&1 将标准错误和标准输出重定向到文件/dev/console中 3.启动应用程序 (1)启动脚本分析(start|stop|restart) cat /etc/init.d/crond (2)启动脚本 service server start|stop|restart| .... script_name start|stop|restart 举例:service crond restart 重起crond服务 service crond status 查看crond服务的状态
高级第四章 脚本实例分析 1.cpdir.sh #!/bin/bash #cpdir.sh #此脚本用于将源目录下的子目录全部复制到目的目录中,不复制目录中的文件,确保目的目#录中的子目录是空目录。 #脚本用法函数 usage() { echo "cpdir.sh 源目录 目的目录" } #判断是否为两个参数,否则提示脚本用法 #if [ $# -ne 2] then { usage exit 0 } fi srcdir =$1 desdir=$2 #判断源目录${srcdir}是否为目录,否则提示错误信息和用法 if[ ! -d ${srcdir} ] then { usage echo "错误:源目录${srcdir}不是目录" exit } fi #判断目的目录${desdir}是否为目录,否则提示错误信息和用法 if[ ! -d ${desdir} ] then { usage echo "错误:目的目录${desdir}不是目录" exit } fi processid=$$ #查找源目录下所有的子目录,输出并保存到/tmp/srcdir_pid.txt文件中 echo "源目录${srcdir}下的所有子目录" echo "***********************************" find ${srcdir}/* -type d |tee /tmp/srcdir_tmp_${processid}.txt sed "s/^${srcdir}/${desdir}/g}" /tmp/srcdir_tmp_${processid}.txt >/tmp/srcdir_${processid}.txt #在目的目录下建立空目录 rm -rf ${desdir}/* for subdir in `cat /tmp/srcdir_${processid}.txt` do { mkdir ${subdir} } done echo "目标目录${desdir}下的所有的子目录" echo "***********************************" find ${desdir}/* -type d | tee /tmp/desdir_${processid}.txt echo "比较目标目录和源目录的差异" echo "***********************************" diff /tmp/desdir_${processid}.txt /tmp/srcdir_${processid}.txt rm -f /tmp/desdir_${processid}.txt /tmp/srcdir_${processid}.txt #删除临时文件
|
一共有 0 条评论