设为首页 收藏本站
查看: 976|回复: 0

shell脚本学习案列

[复制链接]

尚未签到

发表于 2018-8-29 12:32:49 | 显示全部楼层 |阅读模式
  chmod u+x
  ./shxx
  1.简单的shell程序设计 sh example 执行
  显示所在的目录和文件
  $cat example
  #!/bin/sh
  #this is to show what a example looks like
  echo "Our first example"
  echo # this
  echo "we are "
  /bin/pwd
  echo
  echo "This directory contains the following file"
  /bin/ls
  2.写一个周记统计磁盘,用户了
  sh sysunfo
  #!/bin/sh
  #auto mail for system info
  /bin/date +%F >> /tmp/sysinfo
  echo "disk info:- >>/tmp/sysinfo
  /bin/df -h >> /tmp/sysinfo
  echo >> /tmp/sysinfo
  echo "online users:- >> /tmp/sysinfo
  /usr/bin/who | /bin/grep -v root >> /tmp/sysinfo
  echo >> /tmp/sysinfo
  echo "momory info:- >> /tmp/sysinfo
  /usr/bin/free -m >> /tmp/sysinfo
  echo >> /tmp/sysinfo
  #wirte root
  /usr/bin/write root < /tmp/sysinfo && /bin/rm /tmp/sysinfo
  # crontab -e
  #0 9 * * 1-5 script
  3.自动化备份的脚本
  $1 代表位置变量
  sh autoback
  #!/bin/sh
  #backup fies by date
  DATE=`/bin/date +%Y%m%d`
  /bin/tar -cf /backup/$1.$DEATE.tar $1 > /dev/null 2>> /backup/$1.back.log
  /bin/gzip /backup/$1.$DATE.tar
  if[$? -eq 0]
  then
  echo "$s1 $DATE backup successfuly " >> /backup/$1.back.log
  else
  echo "$ERROR: falure $1 $DATE back!" >> /backup/$1.back.log
  fi
  #crontab -e
  # 0 3 * * 2,5 acript
  4.expr变量的使用  元算法
  sh expr
  #!/bin/sh
  a=10
  b=20
  c=30
  value1=`expr $a +$b+$c`
  echo"The value of vaule2 is value2"
  vaule2=`expr $c /$b`
  echo"The value of vaule2 is value2"
  value3=`expr $a +$c /$b`
  echo "The value of value 4 is $value4"
  5.test的字符判断的值 (在服务器中的检测服务有么有启动,没启动则启动)
  cat test.apache
  #!/bin/sh
  # if....esle" usage
  # using this program to show your system's services.
  echo "NOW, the web service of this Linux system will be detect..."
  echo
  # Detect www service
  web=`/usr/bin/pgrep httpd`
  if {"$web"=""}
  then
  echo "The web service is running."
  else
  echo "The web service is NOT running."
  /etc/rc.d/init.d/httpd start
  fi
  6.键盘输入读取用户所在组、管理群等信息 例 ./userinfo root
  cat userinfo.sh
  #!/bin/sh
  #display user's inof ...
  /bin/echo "Please input the username"
  read username
  /bin/grep $username /etc/passwd > /dev/null 2> /dev/null
  if {$? -eq 0}
  then
  /bin/echo "username is : $username"
  else
  /bin/echo "user $username does not exist"
  exit 1
  fi
  /bin/echo
  # list /etc/passwd info
  userinfo=`/bin/grep ``$username:x /etc/passwd`
  userid=`/bin/echo $userinfo | /bin/awk -F :`{print $3}``
  groupid=`/bin/echo $userinfo | /bin/awk -F :`{print $4}``
  homedir=`/bin/echo $userinfo | /bin/awk -F :`{print $6}``
  shell=`/bin/echo $userinfo | /bin/awk -F :`{print $7}``
  #get group name from GID
  grouptmpname=`cat /etc/group | /bin/grep :x:$groupid`
  groupname=`/bin/echo $grouptmpname | /bin/awk -F : `{print $1}``

  /bin/echo "user>  /bin/echo "default group is : $grouptmpname "
  /bin/echo "shell is :$shell"
  /bin/echo "group nembers info:"
  # get login info
  userlogin=`/user/bin/who | /bin/grep $ username`
  /bin/echo
  # get login info
  userlogin=`/usr/bin/groups $ username`
  if ["$userlogin"!=""]
  then
  /bin/echo/ "username is online"
  else
  /bin/echo/ "username NOT logged in"
  fi
  7. 踢出用户
  实例 sh  killuser.sh test
  cat killuser.sh
  #!/bin/sh
  # The script to kill logined user.
  username="$1"
  /bin/ps aux | /bin/grep $username | /bin/awk '{print $2}' > /tmp/temp.pid
  killid =`cat /tmp/temp.pid`
  for PID in $killid
  do
  /bin/kill -9 $PID 2> /dev/null
  done
  8.批量添加用户
  cat useradd.sh
  #!/bin/sh
  #Authur: Sam < E-mail :samlee@amorothernet>
  # The script to add user
  # /etc/passwd info
  echo "pleass input username:"
  read name
  echo "pleass input number:"
  read num
  n=1
  while [$n -le $num ]
  do
  /usr/sbin/useradd $name$n
  n=`expr $n+1`
  done
  # /etc/shadow info
  echo " pleass input the password:"
  read passwd
  m=1
  while [$m -le $num]
  do
  echo $passwd | /usr/bin/passwd --stdin $name$m > /dev/null
  m=`expr $m + 1`
  done
  9.删除用户
  cat deluser.sh
  #!/bin/sh
  echo "please input username:"
  read name
  echo "please input number:"
  read num
  sum =0
  while [ $sum -lt $sum]
  do
  sum=`expr $sum +1`
  /usr/sbin/userdel -r $name$sum
  done
  10.对比命令的查看修改对比
  cat setuid.sh
  #!/bin/sh
  # After the system installed,please check setudi files first for secrity
  # mkdir /backup
  #find / perm -4000 -o -perm -2000 > /backup /setuid.list
  /usr/bin/find /-perm -4000 -o -perm -2000 > /tmp/setuid.check 2> /dev/null
  for file in `/bin/cat /tmp/setuid.check`
  do
  /bin/grep $file /backup/setuid.list >dev/null
  if [ "$?" !="0" ]
  then
  echo "$file isn't in list! it's danger!!"
  fi
  done
  /bin/rm /tmp/setuid.check
  11.查看dhcp的日志统计ip个数
  cat /var/log/messages |grep 'dhcpd: DHCPACK'|awk -F: '{print $4}'|awk '{print $3}'|sort|uniq -c|wc -l


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-558168-1-1.html 上篇帖子: shell 脚本逐行读取多个文件,并逐行对应 下篇帖子: 跟散仙学shell命令(三)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表