翼度科技»论坛 云主机 LINUX 查看内容

Linux 经典脚本

5

主题

5

帖子

15

积分

新手上路

Rank: 1

积分
15
编写hello world脚本
  1. #!/bin/bash
  2. # 编写hello world脚本
  3. echo "Hello World!"
复制代码
通过位置变量创建 Linux 系统账户及密码
  1. #!/bin/bash
  2. # 通过位置变量创建 Linux 系统账户及密码
  3. #$1 是执行脚本的第一个参数,$2 是执行脚本的第二个参数
  4. useradd    "$1"
  5. echo "$2"  |  passwd  ‐‐stdin  "$1"
复制代码
备份日志
  1. #!/bin/bash
  2. # 每周 5 使用 tar 命令备份/var/log 下的所有日志文件
  3. # vim  /root/logbak.sh
  4. # 编写备份脚本,备份后的文件名包含日期标签,防止后面的备份将前面的备份数据覆盖
  5. # 注意 date 命令需要使用反引号括起来,反引号在键盘<tab>键上面
  6. tar  -czf  log-`date +%Y%m%d`.tar.gz  /var/log
  7. # crontab ‐e  #编写计划任务,执行备份脚本
  8. 00  03  *  *  5  /root/logbak.sh
复制代码
监控内存和磁盘容量,小于给定值时报警
  1. #!/bin/bash
  2. # 实时监控本机内存和硬盘剩余空间,剩余内存小于500M、根分区剩余空间小于1000M时,发送报警邮件给root管理员
  3. # 提取根分区剩余空间
  4. disk_size=$(df / | awk '/\//{print $4}')
  5. # 提取内存剩余空间
  6. mem_size=$(free | awk '/Mem/{print $4}')
  7. while :
  8. do
  9. # 注意内存和磁盘提取的空间大小都是以 Kb 为单位
  10. if  [  $disk_size -le 512000 -a $mem_size -le 1024000  ]
  11. then
  12.     mail  ‐s  "Warning"  root  <<EOF
  13.   Insufficient resources,资源不足
  14. EOF
  15. fi
  16. done
复制代码
输入三个数并进行升序排序
  1. #!/bin/bash
  2. # 脚本生成一个 100 以内的随机数,提示用户猜数字,根据用户的输入,提示用户猜对了,
  3. # 猜小了或猜大了,直至用户猜对脚本结束。
  4. # RANDOM 为系统自带的系统变量,值为 0‐32767的随机数
  5. # 使用取余算法将随机数变为 1‐100 的随机数
  6. num=$[RANDOM%100+1]
  7. echo "$num"
  8. # 使用 read 提示用户猜数字
  9. # 使用 if 判断用户猜数字的大小关系:‐eq(等于),‐ne(不等于),‐gt(大于),‐ge(大于等于),
  10. # ‐lt(小于),‐le(小于等于)
  11. while  :
  12. do
  13.   read -p "计算机生成了一个 1‐100 的随机数,你猜: " cai
  14.     if [ $cai -eq $num ]
  15.     then
  16.          echo "恭喜,猜对了"
  17.          exit
  18.       elif [ $cai -gt $num ]
  19.       then
  20.              echo "Oops,猜大了"
  21.         else
  22.              echo "Oops,猜小了"
  23.    fi
  24. done
复制代码
石头、剪刀、布游戏
  1. # 使用二个嵌套的循环生成密码,并将生成的密码传递给A,最终将结果写入到log文件。
  2. #!/bin/bash
  3. while read i; do
  4.   while read ii; do
  5.       password="$i$ii"
  6.       result=$(./A  -p "$password")
  7.       echo "$result-$password" >> log.txt &
  8.       sleep 0.01
  9.   done < st.txt
  10. done < st.txt
复制代码
9*9 乘法表
  1. #!/bin/bash
  2. # 依次提示用户输入 3 个整数,脚本根据数字大小依次排序输出 3 个数字
  3. read -p "请输入一个整数:" num1
  4. read -p "请输入一个整数:" num2
  5. read -p "请输入一个整数:" num3
  6. # 不管谁大谁小,最后都打印 echo "$num1,$num2,$num3"
  7. # num1 中永远存最小的值,num2 中永远存中间值,num3 永远存最大值
  8. # 如果输入的不是这样的顺序,则改变数的存储顺序,如:可以将 num1 和 num2 的值对调
  9. tmp=0
  10. # 如果 num1 大于 num2,就把 num1 和和 num2 的值对调,确保 num1 变量中存的是最小值
  11. if [ $num1 -gt $num2 ];then   
  12.   tmp=$num1
  13.   num1=$num2
  14.   num2=$tmp
  15. fi
  16. # 如果 num1 大于 num3,就把 num1 和 num3 对调,确保 num1 变量中存的是最小值
  17. if [ $num1 -gt $num3 ];then   
  18.     tmp=$num1
  19.     num1=$num3
  20.     num3=$tmp
  21. fi
  22. # 如果 num2 大于 num3,就把 num2 和 num3 对标,确保 num2 变量中存的是小一点的值
  23. if [ $num2 -gt $num3 ];then
  24.     tmp=$num2
  25.     num2=$num3
  26.     num3=$tmp
  27. fi
  28. echo "排序后数据(从小到大)为:$num1,$num2,$num3"
复制代码
编写批量修改扩展名脚本
  1. #!/bin/bash
  2. # 编写脚本,实现人机<石头,剪刀,布>游戏
  3. game=(石头 剪刀 布)
  4. num=$[RANDOM%3]
  5. computer=${game[$num]}
  6. # 通过随机数获取计算机的出拳
  7. # 出拳的可能性保存在一个数组中,game[0],game[1],game[2]分别是 3 中不同的可能
  8. echo "请根据下列提示选择您的出拳手势"
  9. echo "1.石头"
  10. echo "2.剪刀"
  11. echo "3.布"
  12. read -p "请选择 1‐3:" person
  13. case  $person  in
  14. 1)
  15.   if [ $num -eq 0 ]
  16.   then
  17.     echo "平局"
  18.     elif [ $num -eq 1 ]
  19.     then
  20.       echo "你赢"
  21.   else
  22.     echo "计算机赢"
  23.   fi;;
  24. 2)   
  25.   if [ $num -eq 0 ]
  26.   then
  27.     echo "计算机赢"
  28.     elif [ $num -eq 1 ]
  29.     then
  30.       echo "平局"
  31.   else
  32.     echo "你赢"
  33.   fi;;
  34. 3)
  35.   if [ $num -eq 0 ]
  36.   then
  37.     echo "你赢"
  38.     elif [ $num -eq 1 ]
  39.     then
  40.       echo "计算机赢"
  41.   else
  42.     echo "平局"
  43.   fi;;
  44. *)
  45.   echo "必须输入 1‐3 的数字"
  46. esac
复制代码
dd重装系统
  1. #!/bin/bash
  2. # 9*9 乘法表(编写 shell 脚本,打印 9*9 乘法表)
  3. for i in `seq 9`
  4. do
  5.     for j in `seq $i`
  6.      do
  7.          echo -n "$j*$i=$[i*j]  "
  8.      done
  9.     echo
  10. done
复制代码
openssl生成自签名证书
  1. #!/bin/bash
  2. # 编写批量修改扩展名脚本,如批量将 txt 文件修改为 doc 文件
  3. # 执行脚本时,需要给脚本添加位置参数
  4. # 脚本名  txt  doc(可以将 txt 的扩展名修改为 doc)
  5. # 脚本名  doc  jpg(可以将 doc 的扩展名修改为 jpg)
  6. for i in `ls *.$1`
  7. do
  8.      mv $i ${i%.*}.$2
  9. done
复制代码
常用的脚本备份
  1. wget -N --no-check-certificate https://raw.githubusercontent.com/veip007/dd/master/InstallNET.sh && chmod +x InstallNET.sh && ./InstallNET.sh -d 10 -v 64 -p "自定义root密码" -port "自定义ssh端口"
复制代码
来源:https://www.cnblogs.com/byohe/p/17163340.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具