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

利用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

最新文章

  1. 常用快捷键: From Eclipse to Android Studio
  2. Webpack 入门指南 - 1.安装
  3. shadow Dom(shadowRoot) 访问
  4. python序列化模块json和pickle
  5. 左倾堆(三)之 Java的实现
  6. C# 创建WebServices及调用方法
  7. AnyWhere
  8. 04737_C++程序设计_第7章_类模板与向量
  9. 数学之路(3)-机器学习(3)-机器学习算法-SVM[7]
  10. RCP开发中错误:java.lang.RuntimeException: WARNING: Prevented recursive attempt to activate part...
  11. Silverlight 雷达图和一种特殊泡泡画法
  12. linux小白成长之路2————yum安装火狐浏览器
  13. JavaEE学习之Spring Security3.x——模拟数据库实现用户,权限,资源的管理
  14. 关于Win10下IE11只能以管理员身份运行的处理方式
  15. Java面向对象(Eclipse高级、类与接口作为参数返回值)
  16. Python3 turtle安装和使用教程
  17. Trove系列(六)——Trove的安全组功能和Trove的卷数据快照功能介绍
  18. Cocos2d-x3.0触摸
  19. sourcetree的安装及使用
  20. [置顶] CSS语言精粹

热门文章

  1. ffmpeg 模块简介
  2. python 列表和字符串
  3. (排序)P1781 宇宙总统
  4. POJ 1159:Palindrome 最长公共子序列
  5. k8s pod.yml解释
  6. 吴裕雄--天生自然 JAVASCRIPT开发学习: 正则表达式
  7. 201771010123汪慧和《面向对象程序设计JAVA》第九周实验总结
  8. 2.0 虚拟机linu开启ssh服务与FTP
  9. shell的一些一句话东西
  10. python 爬虫 多线程 多进程