Chinaunix首页 | 论坛 | 博客
  • 博客访问: 380887
  • 博文数量: 114
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1219
  • 用 户 组: 普通用户
  • 注册时间: 2015-02-07 21:23
文章分类

全部博文(114)

文章存档

2018年(1)

2017年(5)

2016年(87)

2015年(21)

我的朋友

分类: 系统运维

2016-04-10 00:10:30


  1. 1、Linux挂载Winodws共享文件夹
  2.  
  3. 2、查看http的并发请求数及其TCP连接状态:
  4.  
  5. 3、用tcpdump嗅探80端口的访问看看谁最高
  6.  
  7. 4、统计/var/log/下文件个数
  8.  
  9. 5、查看当前系统每IP连接数
  10.  
  11. 6、shell下32位随机密码生成
  12.  
  13. 7、统计出apache的access.log中访问量最多的5个IP
  14.  
  15. 8、如何查看二进制文件的内容
  16.  
  17. 9、ps aux 中VSZ代表什么意思 RSS代表什么
  18.  
  19. 10、检测并修复/dev/hda5
  20.  
  21. 11、Linux开机启动顺序
  22.  
  23. 12、符号链接和硬链接的区别
  24.  
  25. 13、保存当前磁盘分区的分区表
  26.  
  27. 15、手动安装grub
  28.  
  29. 16、改内核参数
  30.  
  31. 17、在1-39内取随机数
  32.  
  33. 18、限定apache每秒钟连接数为1,峰值为3
  34.  
  35. 19、FTP主动与被动模式
  36.  
  37. 20、显示/etc/inittab中以#开头,且后面跟一个或多个空白字符,而后又跟了任意非空白字符的行;
  38.  
  39. 21、显示/etc/inittab中包含了:一个数字:(即两个冒号中间一个数字)的行;
  40.  
  41. 22、怎么把自己写的脚本添加到服务里面,即可以使用service命令来调用
  42.  
  43. 23、写一个脚本,实现批量添加20个用户,用户名为user1-20,密码为user后面跟5个随机字符
  44.  
  45. 24、写一个脚本,实现判断192.168.1.0/24网络里,当前在线的IP有哪些,能ping通则认为在线
  46.  
  47. 25、写一个脚本,判断一个指定的脚本是否是语法错误;如果有错误,则提醒用户键入Q或者q无视错误并退出其它任何键可以通过vim打开这个指定的脚本;
  48.  
  49. 26、写一个脚本:
  50.  1、创建一个函数,能接受两个参数:
  51.  1)第一个参数为URL,即可下载的文件;第二个参数为目录,即下载后保存的位置;
  52.  2)如果用户给的目录不存在,则提示用户是否创建;如果创建就继续执行,否则,函数返回一个51的错误值给调用脚本;
  53.  3)如果给的目录存在,则下载文件;下载命令执行结束后测试文件下载成功与否;如果成功,则返回0给调用脚本,否则,返回52给调用脚本;
  54.  

  55. 27、写一个脚本:
  56.  1、创建一个函数,可以接受一个磁盘设备路径(如/dev/sdb)作为参数;在真正开始后面步骤之前提醒用户有危险,并让用户选择是否继续;
  57.     而后将此磁盘设备上的所有分区清空(提示,使用命令dd if=/dev/zero of=/dev/sdb bs=512 count=1实现,注意其中的设备路径不要写错了
  58.     ;如果此步骤失败,返回67给主程序;
  59.     接着在此磁盘设备上创建两个主分区,一个大小为100M,一个大小为1G;如果此步骤失败,返回68给主程序;
  60.     格式化此两分区,文件系统类型为ext3;如果此步骤失败,返回69给主程序;
  61.     如果上述过程都正常,返回0给主程序;
  62.  2、调用此函数;并通过接收函数执行的返回值来判断其执行情况,并将信息显示出来;
  63.  

  64. 答案:
  65. 1.mount -t cifs -o username=xxx,password=xxxx //1.1.1.1/a /win
  66.  2.netstat -an | awk '/^tcp/{s[$NF]++}END{for (a in s)print a,s[a]}'
  67.  3.tcpdump -i eth0 -tnn dst port 80 -c 100 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr
  68.  4.ls /var/log/ | wc -l
  69.  5.netstat -an | awk -F"[ :]+" '{s[$6]++}END{for (a in s) print s[a],a}' | sort -nr | head
  70.  6.head /dev/urandom | md5sum | head -c 30
  71.  7.awk '{s[$1]++}END{for (a in s)print a,s[a]}' access.log | sort -nr
  72.  8.mysqlbinlog
  73.  9.VSZ:虚拟内容 RSS:物理内容
  74.  10.fsck -a /dev/hda5
  75.  11、Linux开机启动顺序
  76. 启动顺序:
  77. POST(加电自检)-->由BIOS决定启动设备次序-->MBR(bootloader)-->解压kernel,加载Kernel到内存-->加载init进程(/etc/inittab)

  78. 12、符号链接和硬链接的区别
  79. 硬链接:不同路径的文件指定的是同一个inode
  80.      硬链接不能跨分区存在
  81.      硬链接不能链接到目录(要避免循环引用)
  82.      删除硬链接只会减少文件被硬链接的次数,源文件不会动.
  83. 软链接:是一个独立的文件,有自己独立的inode
  84.      引用的是路径本身,不是inode
  85.      删除软链接,跟源文件没任何关系
  86.      软链接没有存储任何数据,只是存储了访问文件的另一种路径.
  87.      软链接可以对目录创建,也可以跨分区
  88.      源文件被删除,软连接将不可用.

  89.  13.dd if=/dev/sda of=/backup/mbr.bak count=1 bs=512
  90.  14、检测并自动修复文件系统
  91. e2fsck - check a Linux ext2/ext3 file system
  92.      -B 指定块大小
  93.      -f 强制检测.
  94.      -p 自动修复文件系统

  95. 15、手动安装grub
  96. 手动安装grub
  97. # grub-install --root-directory=(指定boot目录) DEVICE
  98. 或者
  99. grub
  100. grub>root (hd0,0)
  101. grub>setup (hd0)

  102. 16、改内核参数
  103. # sysctl
  104.      -p 不用重启系统,让内核重读/etc/sysctl.conf文件
  105.      -a 显示所有内核参数及其正在使用的值.
  106.      -w 临时设置/etc/sysctl.conf参数 sysctl -w net.ipv4.ip_froward=0

  107. 17、在指定范围内取随机数
  108. 在指定范围内取随机
  109. echo $[$RANDOM%39] 对39进行取余,余数肯定是39以内的数字.
  110.  18、限定apache每秒钟连接数为1,峰值为3
  111. # iptables -A INPUT -d 172.16.100.1 -p tcp --dport 80 -m limit --limit 1/second --limit-burst 3 -j ACCEPT

  112. 19、FTP主动与被动模式
  113. 主动模式
  114.     1. 任何大于1024的端口到FTP服务器的21端口。(客户端初始化的连接)
  115.     2. FTP服务器的21端口到大于1024的端口。 (服务器响应客户端的控制端口)
  116.     3. FTP服务器的20端口到大于1024的端口。(服务器端初始化数据连接到客户端的数据端口)
  117.     4. 大于1024端口到FTP服务器的20端口(客户端发送ACK响应到服务器的数据端口)
  118. 被动模式
  119.     1. 从任何大于1024的端口到服务器的21端口(客户端初始化的连接)
  120.     2. 服务器的21端口到任何大于1024的端口(服务器响应到客户端的控制端口的连接)
  121.     3. 从任何大于1024端口到服务器的大于1024端口(客户端初始化数据连接到服务器指定的任意端口)
  122.     4. 服务器的大于1024端口到远程的大于1024的端口(服务器发送ACK响应和数据到客户端的数据端口)

  123. 客户端与服务端建立连接,经过TCP三次握手,连接建立完成之后,客户端就可以通过建立的连接通道向服务器发送命令了,服务器根据客户端的命令,

  124. 向客户端发送数据,发送数据的时候,服务端会再跟客户端建立一个TCP连接,用于专门的传输数据,这个连接就是数据连接。
  125. 数据连接有两种工作模式:主动模式和被动模式
  126. 主动模式指的是服务器是主动的
  127. 被动模式指的是服务器是被动的
  128. 主动模式:
  129. 服务器端自动打开20号端口,即数据传输端口。主动的去连接客户端的命令端口+1的端口。当数据传输完成后,数据连接自动断开。
  130. 被动模式:
  131. 服务器端向客户端通知自己打开的端口,通知客户端来连接自己的数据端口,客户端使用命令端口+1的端口,去连接服务器端的数据端口。
  132. 被动模式下,服务器的数据连接端口使用的是一个随机端口。主动模式服务端使用的是20端口。

  133.  20.grep "^# \{1,\}[^ ]" /etc/inittab
  134.  21.grep ":[[:digit:]]:" /etc/inittab
  135. 22、怎么把自己写的脚本添加到服务里面,即可以使用service命令来调用
  136.  [root@localhost tmp]# cat test
  137. #!/bin/bash
  138.  #chkconfig: 345 85 15
  139.  #description: test
  140.  
  141. restart() {
  142.          /etc/init.d/httpd restart
  143.  }
  144.  
  145. case "$1" in
  146.          restart)
  147.                  restart
  148.                  ;;
  149.          *)
  150.                  echo $"Usage: $0 {restart}"
  151.  esac
  152.  
  153. [root@localhost tmp]# chmod u+x test
  154. [root@localhost tmp]# cp -a test /etc/init.d/
  155.  [root@localhost tmp]# chkconfig --add test
  156.  [root@localhost tmp]# chkconfig --list | grep test
  157.  test 0:off 1:off 2:off 3:on 4:on 5:on 6:off
  158.  [root@localhost tmp]# service test restart
  159.  Stopping httpd: [ OK ]
  160.  Starting httpd: [ OK ]
  161.  
  162. 23、写一个脚本,实现批量添加20个用户,用户名为user1-20,密码为user后面跟5个随机字符
  163.  [root@localhost tmp]# cat Useradd.sh
  164. #!/bin/bash
  165.  #description: useradd
  166.  
  167. for i in `seq 1 20`
  168.  do
  169.          pwd=$(cat /dev/urandom | head -1 | md5sum | head -c 5)
  170.          useradd user$i
  171.          echo "user$i$pwd" | passwd --stdin user$i
  172.          echo user$i user$i$pwd" >> userinfo.txt
  173.  done
  174.  

  175. 24、写一个脚本,实现判断192.168.1.0/24网络里,当前在线的IP有哪些,能ping通则认为在线
  176.  #!/bin/bash
  177.  
  178. for ip in `seq 1 25`
  179.  do
  180.          {
  181.          ping -c 1 192.168.1.$ip > /dev/null 2>&1
  182.          if [ $? -eq 0 ]; then
  183.                  echo 192.168.1.$ip UP
  184.          else
  185.                  echo 192.168.1.$ip DOWN
  186.          fi
  187.          }&
  188.  
  189. done
  190.  wait
  191.  

  192. 25、写一个脚本,判断一个指定的脚本是否是语法错误;如果有错误,则提醒用户键入Q或者q无视错误并退出其它任何键可以通过vim打开这个指定的脚本;
  193.  [root@localhost tmp]# cat checksh.sh
  194. #!/bin/bash
  195.  
  196. read -p "please input check script-> " file
  197.  if [ -f $file ]; then
  198.          sh -n $file > /dev/null 2>&1
  199.          if [ $? -ne 0 ]; then
  200.                  read -p "You input $file syntax error,[Type q to exit or Type vim to edit]" answer
  201.                  case $answer in
  202.                          q | Q)
  203.                                  exit 0
  204.                                  ;;
  205.                          vim)
  206.                                  vim $file
  207.                                  ;;
  208.                           *)
  209.  
  210. exit 0

  211.  
  212.                                 ;;
  213.                  esac
  214.  
  215.         fi
  216.  else
  217.          echo "$file not exist"
  218.          exit 1
  219.  fi
  220.  
  221. 26、写一个脚本:
  222. 1、创建一个函数,能接受两个参数:
  223. 1)第一个参数为URL,即可下载的文件;第二个参数为目录,即下载后保存的位置;
  224. 2)如果用户给的目录不存在,则提示用户是否创建;如果创建就继续执行,否则,函数返回一个51的错误值给调用脚本;
  225. 3)如果给的目录存在,则下载文件;下载命令执行结束后测试文件下载成功与否;如果成功,则返回0给调用脚本,否则,返回52给调用脚本;
  226.  
  227. [root@localhost tmp]# cat downfile.sh
  228. #!/bin/bash
  229.  
  230. url=$1
  231.  dir=$2
  232.  download()
  233.  {
  234.          cd $dir >> /dev/null 2>&1
  235.          if [ $? -ne 0 ];then
  236.                  read -p "$dir No such file or directory,create?(y/n)" answer
  237.                  if [ "$answer" == "y" ];then
  238.                          mkdir -p $dir
  239.                          cd $dir
  240.                          wget $url 1> /dev/null 2>&1
  241.                          if [ $? -ne 0 ]; then
  242.                                  return "52"
  243.                          fi
  244.                  else
  245.                          return "51

阅读(1159) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~