标签:bbb luks $2 ls命令 workman 网络 开机自启 硬件信息 system
CentOS6启动流程. /etc/init.d/functions
check_num(){
if [ ! $1 -eq 1 ];then
echo "Usage:$0 [start|stop|restart|status]"
exit 1
fi
}
check_argument(){
if [[ ! $1 =~ ^(start)|(stop)|(restart)|(status)$ ]];then
echo "Usage:$0 [start|stop|restart|status]"
exit 1
fi
}
main(){
script_name=mageserv
if [[ $2 = start ]];then
if [ ! -e /var/lock/subsys/${script_name} ];then
touch /var/lock/subsys/${script_name}
action "启动成功" true
else
echo "启动成功"
fi
elif [[ $2 = stop ]];then
if [ -e /var/lock/subsys/${script_name} ];then
rm -rf /var/lock/subsys/${script_name}
action "停止完成" true
else
action "停止完成" false
fi
elif [[ $2 = restart ]];then
if [ -e /var/lock/subsys/${script_name} ];then
rm -rf /var/lock/subsys/${script_name}
action "停止完成" true
touch /var/lock/subsys/${script_name}
action "启动成功" true
else
action "停止完成" false
touch /var/lock/subsys/${script_name}
action "启动成功" true
fi
elif [[ $2 = status ]];then
if [ -e /var/lock/subsys/${script_name} ];then
echo "$script_name is runing..."
else
echo "mageserv is dead!"
fi
fi
}
check_num $#
check_argument $1
main $0 $1
添加执行权限:
[root@magedu ~]# chmod +x /etc/init.d/mageserv
把mageserv服务加入系统服务管里中:
[root@magedu ~]# chkconfig --add mageserv
添加mageserv服务开机自启动: ? [root@magedu ~]# chkconfig mageserv on
或指定35启动级别时自动启动:
[root@magedu ~]# chkconfig mageserv off
[root@magedu ~]# chkconfig mageserv on --level 35
注意:改变启动级别,先关闭启动运行时的开机自动启动。 ? 查看mageserv服务设置的默认启动级别:
[root@magedu ~]# chkconfig --list mageserv
mageserv 0:off 1:off 2:off 3:on 4:off 5:on 6:off
查看:
[root@magedu ~]# ll /etc/rc?.d/???mageserv
lrwxrwxrwx 1 root root 18 Jul 28 06:31 /etc/rc0.d/K30mageserv -> ../init.d/mageserv
lrwxrwxrwx 1 root root 18 Jul 28 06:31 /etc/rc1.d/K30mageserv -> ../init.d/mageserv
lrwxrwxrwx 1 root root 18 Jul 28 06:34 /etc/rc2.d/K30mageserv -> ../init.d/mageserv
lrwxrwxrwx 1 root root 18 Jul 28 06:35 /etc/rc3.d/S80mageserv -> ../init.d/mageserv
lrwxrwxrwx 1 root root 18 Jul 28 06:34 /etc/rc4.d/K30mageserv -> ../init.d/mageserv
lrwxrwxrwx 1 root root 18 Jul 28 06:35 /etc/rc5.d/S80mageserv -> ../init.d/mageserv
lrwxrwxrwx 1 root root 18 Jul 28 06:31 /etc/rc6.d/K30mageserv -> ../init.d/mageserv
使用系统服务管理service命令管理mageserv服务:
[root@magedu ~]# service mageserv start
启动成功 [ OK ]
[root@magedu ~]# service mageserv restart
停止完成 [ OK ]
启动成功 [ OK ]
[root@magedu ~]# service mageserv status
mageserv is runing...
[root@magedu ~]# service mageserv stop
停止完成 [ OK ]
[root@magedu ~]# service mageserv status
mageserv is dead!
当然,也可以直接使用该服务脚本文件直接运行:
[root@magedu ~]# /etc/init.d/mageserv
Usage:/etc/init.d/mageserv [start|stop|restart|status]
[root@magedu ~]# /etc/init.d/mageserv start
启动成功 [ OK ]
[root@magedu ~]# /etc/init.d/mageserv restart
停止完成 [ OK ]
启动成功 [ OK ]
[root@magedu ~]# /etc/init.d/mageserv status
mageserv is runing...
[root@magedu ~]# /etc/init.d/mageserv stop
停止完成 [ OK ]
[root@magedu ~]# /etc/init.d/mageserv status
mageserv is dead!
注意: 正常级别下,最后启动一个服务/etc/rc5.d/S99local没有链接至/etc/rc.d/init.d目录下的一个服务脚本,而是指向了/etc/rc.d/rc.local脚本。不便或不需要写为服务脚本放置于/etc/rc.d/init.d/目录,且又想开机时自动运行的命令,可直接放置于/etc/rc.d/rc.loal文件中。/etc/rc.d/rc.local在指定运行级别脚本后运行。
该文件是一个软连接:
[root@magedu ~]# ll /etc/rc5.d/S99local
lrwxrwxrwx. 1 root root 11 May 16 17:45 /etc/rc5.d/S99local -> ../rc.local
rc.local文件也是一个软连接:
[root@magedu ~]# ll /etc/rc.local
lrwxrwxrwx. 1 root root 13 May 16 17:45 /etc/rc.local -> rc.d/rc.local
所以,最终用户自定义的一个启动脚本文件位置是/etc/rc.d/rc.local。 ? [root@magedu ~]# cat /etc/rc.d/rc.local #!/bin/sh # # This script will be executed after all the other init scripts. # You can put your own initialization stuff in here if you don‘t # want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
AWK部分
awk变量? 变量:内置和自定义变量? FS:输入字段分隔符,默认为空白字符awk -v FS=‘:‘ ‘{print $1,FS,$3}’ /etc/passwdawk –F: ‘{print $1,$3,$7}’ /etc/passwd? OFS:输出字段分隔符,默认为空白字符awk -v FS=‘:’ -v OFS=‘:’ ‘{print $1,$3,$7}’ /etc/passwd? RS:输入记录分隔符,指定输入时的换行符awk -v RS=‘ ‘ ‘{print }’ /etc/passwd? ORS:输出记录分隔符,输出时用指定符号代替换行符awk -v RS=‘ ‘ -v ORS=‘###‘‘{print }’ /etc/passwd? NF:字段数量awk -F:‘{print NF}’ /etc/fstab 引用变量时,变量前不需加$awk -F:‘{print $(NF-1)}‘ /etc/passwd? NR:记录号 awk ‘{print NR}’ /etc/fstab ; awk END‘{print NR}’ /etc/fstab
FNR:各文件分别计数,记录号
awk ‘{print FNR}‘ /etc/fstab /etc/inittab
?FILENAME:当前文件名
awk ‘{print FILENAME}’ /etc/fstab
?ARGC:命令行参数的个数
awk ‘{print ARGC}’ /etc/fstab /etc/inittab
awk ‘BEGIN {print ARGC}’ /etc/fstab /etc/inittab
?ARGV:数组,保存的是命令行所给定的各参数
awk ‘BEGIN {print ARGV[0]}’ /etc/fstab /etc/inittab
awk ‘BEGIN {print ARGV[1]}’ /etc/fstab /etc/inittab
awk -F: -f awkscript script=“awk” /etc/passwd
Printf命令
格式符:与item一一对应
%c:显示字符的ASCII码
%d, %i:显示十进制整数
%e, %E:显示科学计数法数值
%f:显示为浮点数
%g, %G:以科学计数法或浮点形式显示数值
%s:显示字符串
%u:无符号整数
%%:显示%自身
? 修饰符
#[.#] 第一个数字控制显示的宽度;第二个#表示小数点后精度,%3.1f
ss -nt|awk -F"[[:space:]]+|:" ‘/^ESTAB/{print $6}‘|sort |uniq -c|awk ‘$1>=3{print $2}‘
;do iptables -A INPUT -s $ip -j REJECT;doneawk ‘{print $1}‘ /var/log/httpd/access_log |sort |uniq -c|sort -nr|head|awk ‘{print $2}‘
;do iptables -A INPUT -s $ip -j REJECT;doneAwk部分加{}与不加{}的区别:
[root@centos7 ~]#awk ‘!line[$0]++{print $0,line[$0]}‘ f1.txt
aa 1
bb 1
cc 1
aaaa 1
bbb 1
dd 1
[root@centos7 ~]#awk ‘{!line[$0]++;print $0,line[$0]}‘ f1.txt
aa 1
bb 1
cc 1
aaaa 1
bbb 1
aa 2
cc 2
dd 1
bb 2
cc 3
aaaa 2
取TCP状态出现的次数:
[root@centos7 ~]#ss -nta > state.log
[root@centos7 ~]#awk ‘NR!=1{state[$1]++}END{for(i in state){print i,state[i]}}‘ state.log
SYN-RECV 1
LISTEN 59
ESTAB 44
FIN-WAIT-2 1
TIME-WAIT 3593
取男生和女生的平均成绩:(两种不同的方法) 1.‘NR!=1{if($2=="m"){m_sum+=$3;m_num++}else{f_sum+=$3;f_num++}}END{print "male:"m_sum/m_num,"female:"f_sum/f_num}‘ score.txt
2.‘NR!=1{sum[$2]+=$3;num[$2]++}END{for(i in sum){print i":"sum[i]/num[i]}}‘ score.txt
m:89.5
f:92.5
统计ip地址出现的次数:
awk ‘{ip[$1]++}END{for(i in ip){print ip[i],i}}‘ /var/log/httpd/access_log
split(s,array,[r]):以r为分隔符,切割字符串s,并将切割后的结果保存至array所表示的数组中,第一个索引值为1,第二个索引值为2,…:
netstat -tn | awk ‘/^tcp\>/{split($5,ip,":");count[ip[1]]++}END{for (i in count) {print i,count[i]}}‘
系统启动与内核管理 ;AWK部分 重要内容 (实验及awk的常见面试题)
标签:bbb luks $2 ls命令 workman 网络 开机自启 硬件信息 system
原文地址:http://blog.51cto.com/14128387/2345199