七、Shell脚本高级编程实战第七部
一、写网络服务的系统启动脚本
利用case语句开发类似系统启动rsync服务的脚本
代码:
. /etc/init.d/functions
pidfile="/var/run/rsyncd.pid"
start_rsync(){
if [ -f "$pidfile" ]
then
echo "rsync is running"
else
rsync --daemon
action "rsync is started" /bin/true
fi
}
stop_rsync(){
if [ -f "$pidfile" -a -n "$pidfile" ]
then
kill -USR2 `cat $pidfile`
rm -f ${pidfile}
action "rsync is stopped" /bin/true
else
action "rsync have already been rstopped" /bin/false
fi
}
start)
start_rsync
RETVAL=$?
;;
stop)
stop_rsync
RETVAL=$?
;;
restart)
stop_rsync
sleep 10
start_rsync
RETVAL=$?
;;
*)
echo "USAGE: $0 {start|stop|restart}"
exit 1
;;
esac
exit $RETVAL
测试:

二、进程管理的命令
fg 放到前台执行
bg 放到后台执行,ctrl+z表示暂停当前会话
jobs 当前后台执行的任务
strace 跟踪一个进程的系统调用,top 显示进程
三、while循环,1加到100之和
#!/bin/sh
i=1
sum=0
while [ $i -le 100 ]
do
let sum=sum+i;
let i=i+1
done
echo "$sum"
1.let效果是小于(())
2.首项+末项的和乘以项数/2,如果计算1000万,这种算法效率更高,所以算法很重要,用上面的方法就是有问题的
四、whle循环,打印10,9,8,7.。。。1
#!/bin/sh
i=10
while ((i>0))
do
echo $i
((i--))
sleep 1
done
五、计算apache一天的日志access_xxx.log中所有行的日志各个元素的访问字节数总和。
sum=0
i=0
while read line
do
i=$(echo $line|awk '{print $(10)}')
if expr $i + 0 &>/dev/null
then
((sum=sum+i))
fi
done < /server/scripts/access.log
while小结:while擅长1分钟以内的循环处理
六、打印5,4,3,2,1用for循环
#!/bin/sh
for n in 5 4 3 2 1
do
echo $n
sleep 1
done
七、用for设置开机自启动:crond rsyslog network sshd network nfs rpcbind mysqld
for name in `chkconfig --list|grep 3:on|awk '{print $1}'`
do
chkconfig $name off
done
do
chkconfig $name on
done
七、Shell脚本高级编程实战第七部的更多相关文章
- 四、Shell脚本高级编程实战第四部
一.比较两个数的大小 #!/bin/shread -p "Pls input two num:" a b[ -z "$a" ] || [ -z "$b ...
- 六、Shell脚本高级编程实战第六部
一.写一个start_nginx脚本,当启动.停止.重启时利用系统函数模拟实现系统脚本启动的特殊颜色效果 (用if实现) #!/bin/sh. /etc/init.d/functions if [ $ ...
- 八、Shell脚本高级编程实战第八部
一.使用for循环在/oldboy目录下创建10个文件名为oldboy-x的文件 #!/bin/sh[ ! -d /oldboy ] && mkdir -p /oldbfor i in ...
- 一、Shell脚本高级编程实战第一部
Shell脚本语言是实现linux系统自动化管理的重要且必要的工具,几乎每一个合格的linux系统管理员或者高级运维工程师都要熟练shell脚本语言的编写,只有这样才能提升工作效率,解决工作中的重复劳 ...
- 三、Shell脚本高级编程实战第三部
保养好自己的发动机:身体的和心里的身体健康:打打球,跑跑步心里健康:多和大家接触,保持家人.朋友的良好关系一.$*和$@的区别 $*:获取shell的所有参数,将所有的参数视为单个字符串. $ ...
- 二、Shell脚本高级编程实战第二部
一.什么是变量? 变量就是一个固定的字符串替代更多更复杂的内容,当然内容里面可能还有变量.路径.字符串等等内容,最大的特点就是方便,更好开展工作 1.变量有环境变量(全局变量)和局部变量 环境变量就是 ...
- 九、Shell脚本高级编程实战第九部
一.监控mysql主从同步是否异常,如果异常,发送短信给管理员 1)开发一个守护进程脚本每30秒实现检测一次. 2)如果错误号是:1158.1159.1008.1007.1062,请跳过 3)请使用数 ...
- 五、Shell脚本高级编程实战第五部
一.条件表达式 在bash的各种流程控制结构中通常要进行各种测试,然后根据测试结果执行不同的操作.有时也和if结合,让我们方便判断. test: 1)判断文件是否存在:test -f file 2) ...
- Shell脚本高级编程笔记一
http://www.cnblogs.com/ygj0930/p/8184277.html 一:函数 1:创建函数 法一: function name{ commands } 法二: name() ...
随机推荐
- 每天一点点之javascript(ES6) - Map对象
1.语法 键/值对的集合. mapObj = new Map() 注:集合中的键和值可以是任何类型.如果使用现有密钥向集合添加值,则新值会替换旧值. 2.属性下表列出了 Map 对象的属性和描述. 构 ...
- 从谷歌Pixel3不堆硬件看智能手机下一个十年将被AI制霸
别看现在的智能手机行业热闹异常--厂商混战.新品频出.噱头涌现,但能引领手机行业发展趋势的依旧是苹果和谷歌.如果说苹果的iPhone树立了一个个智能手机行业进化的标杆,那么谷歌其实就是在为安卓手机的发 ...
- PHP ~ 通过程序删除图片,同时删除数据库中的图片数据 和 图片文件
删除单张图片 <?php require_once '../../conn.php'; //连接数据库 $ID = $_GET['ID' ...
- 剑指offer_1.19_Day_3
替换空格 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. Javascript_V8 f ...
- UVA 11624 UVA 10047 两道用 BFS进行最短路搜索的题
很少用bfs进行最短路搜索,实际BFS有时候挺方便得,省去了建图以及复杂度也降低了O(N*M): UVA 11624 写的比较挫 #include <iostream> #include ...
- Mysql修改默认提示符
mysql修改默认提示符 临时修改 mysql> prompt [\u@db1 \r:\m:\s]--> PROMPT set to '[\u@db1 \r:\m:\s]-->' [ ...
- Java基础查漏补缺(1)
Java基础查漏补缺 String str2 = "hello"; String str3 = "hello"; System.out.println(str3 ...
- Map 查找表操作
package seday13; import java.util.HashMap; import java.util.Map; /** * @author xingsir * java.util.M ...
- IP欺骗(XFF头等)
很多时候需要伪造一些http头来绕过WAF 1.X-Forwarded-For: 简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该 ...
- 干货 | AI人脸识别之人脸搜索
本文档将利用京东云AI SDK来实践人脸识别中的人脸搜索功能,主要涉及到分组创建/删除.分组列表获取.人脸创建/删除.人脸搜索,本次实操的最终效果是:创建一个人脸库,拿一张图片在人脸库中搜索出相似度最 ...