一、写网络服务的系统启动脚本

利用case语句开发类似系统启动rsync服务的脚本

代码:

#!/bin/sah
. /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
}
case "$1" in
  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中所有行的日志各个元素的访问字节数总和。

#!/bin/sh
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
echo $sum

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

#!/bin/sh
for name in `chkconfig --list|grep 3:on|awk '{print $1}'`
do
  chkconfig $name off
done
for name in crond rsyslog network  sshd  network nfs rpcbind mysqld
do
  chkconfig $name on
done

七、Shell脚本高级编程实战第七部的更多相关文章

  1. 四、Shell脚本高级编程实战第四部

    一.比较两个数的大小 #!/bin/shread -p "Pls input two num:" a b[ -z "$a" ] || [ -z "$b ...

  2. 六、Shell脚本高级编程实战第六部

    一.写一个start_nginx脚本,当启动.停止.重启时利用系统函数模拟实现系统脚本启动的特殊颜色效果 (用if实现) #!/bin/sh. /etc/init.d/functions if [ $ ...

  3. 八、Shell脚本高级编程实战第八部

    一.使用for循环在/oldboy目录下创建10个文件名为oldboy-x的文件 #!/bin/sh[ ! -d /oldboy ] && mkdir -p /oldbfor i in ...

  4. 一、Shell脚本高级编程实战第一部

    Shell脚本语言是实现linux系统自动化管理的重要且必要的工具,几乎每一个合格的linux系统管理员或者高级运维工程师都要熟练shell脚本语言的编写,只有这样才能提升工作效率,解决工作中的重复劳 ...

  5. 三、Shell脚本高级编程实战第三部

    保养好自己的发动机:身体的和心里的身体健康:打打球,跑跑步心里健康:多和大家接触,保持家人.朋友的良好关系一.$*和$@的区别   $*:获取shell的所有参数,将所有的参数视为单个字符串.   $ ...

  6. 二、Shell脚本高级编程实战第二部

    一.什么是变量? 变量就是一个固定的字符串替代更多更复杂的内容,当然内容里面可能还有变量.路径.字符串等等内容,最大的特点就是方便,更好开展工作 1.变量有环境变量(全局变量)和局部变量 环境变量就是 ...

  7. 九、Shell脚本高级编程实战第九部

    一.监控mysql主从同步是否异常,如果异常,发送短信给管理员 1)开发一个守护进程脚本每30秒实现检测一次. 2)如果错误号是:1158.1159.1008.1007.1062,请跳过 3)请使用数 ...

  8. 五、Shell脚本高级编程实战第五部

    一.条件表达式 在bash的各种流程控制结构中通常要进行各种测试,然后根据测试结果执行不同的操作.有时也和if结合,让我们方便判断. test: 1)判断文件是否存在:test -f  file 2) ...

  9. Shell脚本高级编程笔记一

     http://www.cnblogs.com/ygj0930/p/8184277.html 一:函数 1:创建函数 法一: function name{ commands } 法二: name() ...

随机推荐

  1. 【转】Java线程面试题 Top 50(转)

    不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题.Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎.大多数待遇丰厚的Java开发职位都要求开发者精通多线程 ...

  2. 原子类型字段更新器AtomicXxxxFieldUpdater

    本博客系列是学习并发编程过程中的记录总结.由于文章比较多,写的时间也比较散,所以我整理了个目录贴(传送门),方便查阅. 并发编程系列博客传送门 原子类型字段更新器 在java.util.concurr ...

  3. 寒假day26

    根据已有数据爬取新数据充实人才库

  4. SpringCloud学习之手把手教你用IDEA搭建入门项目(二)

    本篇博客是承接上一篇<手把手教你用IDEA搭建SpringCloud入门项目(一)>,不清楚的请到我的博客空间查看后再看本篇博客 1)先创建一个Eureka服务注册中心模块,用来作为服务的 ...

  5. 面试题:你使用过concurrent包下的那些类?

    1.executor接口,使用executor接口的子接口ExecutorService用来创建线程池2.Lock接口下的ReentrantLock类,实现同步,比如三个线程循环打印ABCABCABC ...

  6. PHP+InfiniteScroll实现网页无限滚动加载数据实例

    PHP+InfiniteScroll实现网页无限滚动加载数据实例,实现原理:当滚动条到底离网页底部一定长度的时候,向后台发送页数并获取数据. 首先我们在页面上先放置10条数据,即第一页,每一项都是p标 ...

  7. 201771010123汪慧和《面向对象程序设计Java》第十一周实验总结

    一.理论部分 1.栈 (1)栈是一种特殊的线性表,是一种后进先出的结构.(2)栈是限定仅在表尾进行插入和删除运算的线性表,表尾称为栈顶,表头称为栈底.(3)栈的物理存储可以用顺序存储结构,也可以用链式 ...

  8. XCOM串口助手打印不出数据

    本次实验是在基于原子的战舰开发板上的做定时器捕获实验,程序源码下载到板子上运行正常.指示灯正常显示,打开XCOM识别不来串口,原因:硬件上没有插USB转串口线: 连接上USB转串口线,软件上以显示CH ...

  9. Servlet基本概念及其部署

    什么servlet? Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动 ...

  10. selenium浏览器内核监测处理

    一.代码 from selenium.webdriver import Chrome from selenium.webdriver import ChromeOptions option = Chr ...