shell面试三十题(转)

   
       
           
                原创               

linux运维人员必会的30道shell编程面试题

           
                   
   
   
               
                                               
                                                                                版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。                          
                    本文链接: https://blog.csdn.net/hiyun9/article/details/52057255                
                               
                                                                                                           
                                           

一、序言


前几天一个做开发的朋友发给我一个链接,http://oldboy.blog.51cto.com/2561410/1632876?from=singlemessage&isappinstalled=0

是老男孩出的企业面试题培训叫做:合格linux运维人员必会的30道shell编程面试题及讲解,于是乎,,我打算每个都自己写一遍,,

PS:我是不是闲的蛋疼!!!



二、开撸


企业面试题1:(生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员。提示:如果没主从同步环境,可以用下面文本放到文件里读取来模拟:
阶段1:开发一个守护进程脚本每30秒实现检测一次。
阶段2:如果同步出现如下错误号(1158,1159,1008,1007,1062),则跳过错误。
阶段3:请使用数组技术实现上述脚本(获取主从判断及错误号部分)

##这个还没写,,因为还要搞mysql主从复制的环境,,写把下面简单的撸了先。。



企业面试题2:
使用for循环在/oldboy目录下通过随机小写10个字母加固定字符串oldboy批量创建10个html文件,名称例如为:


     
     
  1. [root@oldboy oldboy] # sh /server/scripts/oldboy.sh
  2. [root@oldboy oldboy] # ls
  3. coaolvajcq_oldboy.html  qnvuxvicni_oldboy.html  vioesjmcbu_oldboy.html
  4. gmkhrancxh_oldboy.html  tmdjormaxr_oldboy.html  wzewnojiwe_oldboy.html
  5. jdxexendbe_oldboy.html  ugaywanjlm_oldboy.html  xzzruhdzda_oldboy.html
  6. qcawgsrtkp_oldboy.html  vfrphtqjpc_oldboy.html

############我的脚本2############################################

     
     
  1. [root@cjy linux -20] # vim 2.sh
  2. #!/bin/bash
  3. WORK_DIR=/oldboy/
  4. create(){
  5.     i= 1
  6.     while (($i< 11))
  7.     do
  8.         cd $WORK_DIR && touch `tr -dc "a-z"</dev/urandom |head -c 10`_oldboy.html
  9.         i=$(($i+ 1))
  10.     done
  11. }
  12. check(){
  13.     if [ -d $WORK_DIR ];
  14.     then
  15.         create
  16.     else
  17.         mkdir $WORK_DIR
  18.         create
  19.     fi
  20. }
  21. check



     
     
  1. [root@cjy linux -20] # ./2.sh
  2. [root@cjy linux -20] # ls /oldboy/
  3. daijyyadst_oldboy.html  mjmcfvvjcq_oldboy.html  qmgbrihbco_oldboy.html  yrxovjbwlv_oldboy.html
  4. djfhdphvqf_oldboy.html  mohijpfehs_oldboy.html  xdtspqouln_oldboy.html
  5. gjczumsnfy_oldboy.html  nfwzssqtus_oldboy.html  yhqruiiota_oldboy.htm


企业面试题3:请用至少两种方法实现!
将以上文件名中的oldboy全部改成oldgirl(用for循环实现),并且html改成大写。

############我的脚本3_1############################################


     
     
  1. [root@cjy linux -20] # vim 3_1.sh
  2. #!/bin/bash
  3. change_name(){
  4. DIR=/oldboy
  5. FILE=`ls /oldboy`
  6. GIRL=_oldgirl.HTML
  7. for i in $FILE
  8. do
  9.    c=`echo $i | cut -c 1 -10`
  10.    mv $DIR/$c* $DIR/$c$GIRL
  11. done
  12. }
  13. change_name

############我的脚本3_2############################################


     
     
  1. [root@cjy linux -20] # vim 3_2.sh
  2. #!/bin/bash
  3. change_name(){
  4. DIR=/oldboy
  5. FILE=`ls /oldboy`
  6. GIRL=_oldgirl.HTML
  7. for i in $FILE
  8. do
  9.    c=`echo $i | awk -F '_' '{print $1}'`
  10.    mv $DIR/$c* $DIR/$c$GIRL
  11. done
  12. }
  13. change_name


     
     
  1. [root@cjy linux -20] # ./3_1.sh
  2. [root@cjy linux -20] # ls /oldboy/
  3. daijyyadst_oldgirl.HTML  mjmcfvvjcq_oldgirl.HTML  qmgbrihbco_oldgirl.HTML  yrxovjbwlv_oldgirl.HTML
  4. djfhdphvqf_oldgirl.HTML  mohijpfehs_oldgirl.HTML  xdtspqouln_oldgirl.HTML
  5. gjczumsnfy_oldgirl.HTML  nfwzssqtus_oldgirl.HTML  yhqruiiota_oldgirl.HTML

企业面试题4:
批量创建10个系统帐号oldboy01-oldboy10并设置密码(密码为随机8位字符串)。

############我的脚本4############################################


     
     
  1. [root@cjy linux -20] # vim 4.sh
  2. #!/bin/bash
  3. USER=oldboy
  4. create_user(){
  5.     for i in { 01. .10}
  6.     do
  7.          RPASSWD=$(tr -dc [:alpha:] < /dev/urandom |head -c 8)
  8.          useradd $USER$i
  9.          echo $RPASSWD|passwd $USER$i --stdin
  10.          echo $USER$i----$RPASSWD >> /oldboy/userpasswd.txt
  11.     done
  12. }
  13. del_user(){
  14.     for j in { 01. .10}
  15.     do
  16.         userdel $USER$j
  17.         rm -rf /home/$USER$j
  18.     done
  19. }
  20. case $ 1 in
  21.     create)
  22.         create_user
  23.     ;;
  24.     del)
  25.         del_user
  26.     ;;
  27.     *)
  28.         echo "Usage:Please use $0 create or $0 del."
  29.         echo "####################################"
  30.         echo "create: create user $USER 01-10 and give it random passwd."
  31.         echo "del: delete $USER 01-10 and /home/$USER 01-10 directory. "
  32.     ;;
  33.     esac


     
     
  1. [root@cjy linux -20] # ./4.sh
  2. Usage:Please use ./ 4.sh create or ./ 4.sh del.
  3. ####################################
  4. create: create user oldboy 01 -10 and give it random passwd.
  5. del: delete oldboy 01 -10 and /home/oldboy 01 -10 directory.
  6. [root@cjy linux -20] # ./4.sh create
  7. 正在创建信箱文件: 文件已存在
  8. 更改用户 oldboy01 的密码 。
  9. passwd: 所有的身份验证令牌已经成功更新。
  10. 正在创建信箱文件: 文件已存在
  11. 更改用户 oldboy02 的密码 。
  12. passwd: 所有的身份验证令牌已经成功更新。
  13. 正在创建信箱文件: 文件已存在
  14. 更改用户 oldboy03 的密码 。
  15. passwd: 所有的身份验证令牌已经成功更新。
  16. 正在创建信箱文件: 文件已存在
  17. 更改用户 oldboy04 的密码 。
  18. passwd: 所有的身份验证令牌已经成功更新。
  19. 正在创建信箱文件: 文件已存在
  20. 更改用户 oldboy05 的密码 。
  21. passwd: 所有的身份验证令牌已经成功更新。
  22. 正在创建信箱文件: 文件已存在
  23. 更改用户 oldboy06 的密码 。
  24. passwd: 所有的身份验证令牌已经成功更新。
  25. 正在创建信箱文件: 文件已存在
  26. 更改用户 oldboy07 的密码 。
  27. passwd: 所有的身份验证令牌已经成功更新。
  28. 正在创建信箱文件: 文件已存在
  29. 更改用户 oldboy08 的密码 。
  30. passwd: 所有的身份验证令牌已经成功更新。
  31. 正在创建信箱文件: 文件已存在
  32. 更改用户 oldboy09 的密码 。
  33. passwd: 所有的身份验证令牌已经成功更新。
  34. 正在创建信箱文件: 文件已存在
  35. 更改用户 oldboy10 的密码 。
  36. passwd: 所有的身份验证令牌已经成功更新。
  37. [root@cjy linux -20] # vim /etc/passwd
  38. oldboy01:x: 503: 503::/home/oldboy01:/bin/bash
  39. oldboy02:x: 504: 504::/home/oldboy02:/bin/bash
  40. oldboy03:x: 505: 505::/home/oldboy03:/bin/bash
  41. oldboy04:x: 506: 506::/home/oldboy04:/bin/bash
  42. oldboy05:x: 507: 507::/home/oldboy05:/bin/bash
  43. oldboy06:x: 508: 508::/home/oldboy06:/bin/bash
  44. oldboy07:x: 509: 509::/home/oldboy07:/bin/bash
  45. oldboy08:x: 510: 510::/home/oldboy08:/bin/bash
  46. oldboy09:x: 511: 511::/home/oldboy09:/bin/bash
  47. oldboy10:x: 512: 512::/home/oldboy10:/bin/bash
  48. [root@cjy linux -20] # ./4.sh del    #删除用户

企业面试题5:
写一个脚本,实现判断10.0.0.0/24网络里,当前在线用户的IP有哪些(方法有很多)

############我的脚本5############################################


     
     
  1. [root@cjy linux -20] # vim 5.sh
  2. #!/bin/bash
  3. tmp_fifofile=/tmp/$$.fifo
  4. mkfifo $tmp_fifofile
  5. exec 6<> $tmp_fifofile
  6. rm -rf $tmp_fifofile
  7. thread= 254
  8. for ((i= 0;i<$thread;i++))
  9. do
  10.     echo >& 6
  11. done
  12. for ((i= 2;i< 255;i++))
  13. do
  14. read -u6
  15.     {
  16.         ip= 172.16 .27.
  17.         ping $ip$i -c 1 >/dev/null && echo $ip$i:live || echo $ip$i:dead >> 123
  18.                echo >& 6
  19.     }&
  20. done
  21. wait
  22. exec 6>&-
  23. exit 0


     
     
  1. [root@cjy linux -20] # ./5.sh &
  2. [ 1] 22668
  3. [root@cjy linux -20] # 172.16.27.11:live
  4. 172.16 .27 .23:live
  5. 172.16 .27 .25:live
  6. 172.16 .27 .27:live
  7. 172.16 .27 .28:live
  8. 172.16 .27 .24:live
  9. 172.16 .27 .26:live
  10. 172.16 .27 .21:live
  11. 172.16 .27 .31:live
  12. 172.16 .27 .30:live
  13. 172.16 .27 .37:live
  14. 172.16 .27 .54:live
  15. 172.16 .27 .61:live
  16. 172.16 .27 .80:live
  17. 172.16 .27 .254:live

企业实战题6:请用至少两种方法实现!
写一个脚本解决DOS攻击生产案例
提示:根据web日志或者或者网络连接数,监控当某个IP并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频率每隔3分钟。防火墙命令为:iptables -I INPUT -s 10.0.1.10 -j DROP。


企业实战题7:
开发mysql多实例启动脚本:
已知mysql多实例启动命令为:mysqld_safe--defaults-file=/data/3306/my.cnf &
停止命令为:mysqladmin -u root -poldboy123 -S /data/3306/mysql.sockshutdown
请完成mysql多实例启动启动脚本的编写
要求:用函数,case语句、if语句等实现。


企业实战题8:如何实现对MySQL数据库进行分库备份,请用脚本实现


企业实战题9:如何实现对MySQL数据库进行分库加分表备份,请用脚本实现



企业面试题10:请用至少两种方法实现!
bash for循环打印下面这句话中字母数不大于6的单词(昆仑万维面试题)。
I am oldboy teacher welcome to oldboy training class.


     
     
  1. #!/bin/bash
  2. echo '###Usage1#####'
  3. a= 'I am oldboy teacher welcome to oldboy training class.'
  4. for i in $a
  5. do
  6.     NUM=`echo $i |wc -L`
  7.     if [ $NUM -le 6 ];then
  8.         echo $i
  9.     fi
  10. done
  11. echo '###Usage2######'
  12. for i in $a
  13. do
  14.     if [ ${ #i} -le 6 ];then
  15.         echo $i
  16.     fi
  17. done


     
     
  1. ###Usage1#####
  2. I
  3. am
  4. oldboy
  5. to
  6. oldboy
  7. class.
  8. ###Usage2######
  9. I
  10. am
  11. oldboy
  12. to
  13. oldboy
  14. class.


企业面试题11:开发shell脚本分别实现以脚本传参以及read读入的方式比较2个整数大小。以屏幕输出的方式提醒用户比较结果。注意:一共是开发2个脚本。当用脚本传参以及read读入的方式需要对变量是否为数字、并且传参个数做判断。 

企业面试题12:打印选择菜单,一键安装Web服务:

[root@oldboyscripts]# sh menu.sh

    1.[install lamp]

    2.[install lnmp]

    3.[exit]

    pls input the num you want:

要求:

1、当用户输入1时,输出“startinstalling  lamp.”然后执行/server/scripts/lamp.sh,脚本内容输出"lampis  installed"后退出脚本;

2、当用户输入2时,输出“startinstalling  lnmp.”然后执行/server/scripts/lnmp.sh输出"lnmpis  installed"后退出脚本;

3、当输入3时,退出当前菜单及脚本;

4、当输入任何其它字符,给出提示“Input error”后退出脚本。

5、要对执行的脚本进行相关条件判断,例如:脚本是否存在,是否可执行等。 


     
     
  1. #!/bin/bash
  2. echo "1.[install lamp]"
  3. echo "2.[install lnmp]"
  4. echo "3.[exit]"
  5. read -t 30 -p "Please input tut the num you want:" a
  6. case $a in
  7.     1)
  8.         if
  9.             [ -f lamp.sh ];then
  10.                 ./lamp.sh
  11.                 sleep 3
  12.                 echo "lamp is installed!"
  13.         else
  14.             echo "no lamp.sh!"
  15.         fi
  16.     ;;
  17.     2)
  18.         if
  19.             [ -f lnmp.sh ];then
  20.                 ./lnmp.sh
  21.                 sleep 3
  22.                 echo "lnmp is installed!"
  23.         else
  24.             echo "no lnmp.sh!"
  25.         fi
  26.     ;;
  27.     3)
  28.         exit 0
  29.     ;;
  30.     *)
  31.         echo  "Input error"
  32.         exit 0
  33. esac


     
     
  1. [root@cjy linux -20] # ./12.sh
  2. 1.[install lamp]
  3. 2.[install lnmp]
  4. 3.[exit]
  5. Please input tut the num you want: 1
  6. no lamp.sh!


企业面试题13:

1、监控web服务是否正常,不低于3种监控策略。

2、监控db服务是否正常,不低于3种监控策略。
要求间隔1分钟,持续监控。

 

企业面试题14:监控memcache服务是否正常,模拟用户(web客户端)检测。

使用nc命令加上set/get来模拟检测,以及监控响应时间及命中率。


企业面试题15:面试及实战考试题:监控web站点目录(/var/html/www)下所有文件是否被恶意篡改(文件内容被改了),如果有就打印改动的文件名(发邮件),定时任务每3分钟执行一次(10分钟时间完成)。
 

企业面试题16:企业案例:写网络服务独立进程模式下rsync的系统启动脚本

例如:/etc/init.d/rsyncd{start|stop|restart} 。
要求:
1.要使用系统函数库技巧。
2.要用函数,不能一坨SHI的方式。
3.可被chkconfig管理。

 

企业面试题17:老男孩教育天津项目学生实践抓阄题目:

好消息,老男孩培训学生外出企业项目实践机会(第6次)来了(本月中旬),但是,名额有限,队员限3人(班长带队)。

因此需要挑选学生,因此需要一个抓阄的程序:

要求:

1、执行脚本后,想去的同学输入英文名字全拼,产生随机数01-99之间的数字,数字越大就去参加项目实践,前面已经抓到的数字,下次不能在出现相同数字。

2、第一个输入名字后,屏幕输出信息,并将名字和数字记录到文件里,程序不能退出继续等待别的学生输入
 

 

企业面试题18:老男孩linux企业面试题:

已知下面的字符串是通过RANDOM随机数变量md5sum|cut-c  1-8截取后的结果,请破解这些字符串对应的md5sum前的RANDOM对应数字?

21029299

00205d1c

a3da1677

1f6d12dd

890684b

 

 

企业面试题19:批量检查多个网站地址是否正常 

要求:shell数组方法实现,检测策略尽量模拟用户访问思路

http://www.etiantian.org

http://www.taobao.com

http://oldboy.blog.51cto.com

http://10.0.0.7 


企业面试题20(中企动力)::用shell处理以下内容

1、按单词出现频率降序排序!

2、按字母出现频率降序排序!

the squid project provides a number of resources toassist users design,implement and support squid installations. Please browsethe documentation and support sections for more infomation


     
     
  1. [root@cjy linux -20] # cat test
  2. the squid project provides a number of resources toassist users design,implement and support squid installations.Please browsethe
  3. documentation and support sections for more infomation


     
     
  1. [root@cjy linux -20] # cat 20_1.sh
  2. #!/bin/bash
  3. sed -i 's/\,\|\./ /g' test
  4. for i in `cat test`
  5. do
  6.     echo $i
  7. done


     
     
  1. [root@cjy linux -20] # ./20_1.sh |sort|uniq -c |sort -r
  2.       2 support
  3.       2 squid
  4.       2 and
  5.       1 users
  6.       1 toassist
  7.       1 the
  8.       1 sections
  9.       1 resources
  10.       1 provides
  11.       1 project
  12.       1 Please
  13.       1 of
  14.       1 number
  15.       1 more
  16.       1 installations
  17.       1 infomation
  18.       1 implement
  19.       1 for
  20.       1 documentation
  21.       1 design
  22.       1 browsethe
  23.       1 a


     
     
  1. [root@cjy linux -20] # cat 20_2.sh
  2. #!/bin/bash
  3. sed -i 's/\,\|\./ /g' test
  4. for i in `cat test`
  5. do
  6.     for j in `echo $i`
  7.     do
  8.     echo $j | awk -F '' '{for(i=1;i<=NF;i++)print $i}'
  9.     done
  10. done


     
     
  1. [root@cjy linux -20] # ./20_2.sh |sort |uniq -c|sort -nr
  2.      19 s
  3.      17 e
  4.      16 o
  5.      14 t
  6.      12 n
  7.      12 i
  8.      11 r
  9.       9 a
  10.       8 u
  11.       7 p
  12.       7 d
  13.       6 m
  14.       4 l
  15.       4 c
  16.       3 f
  17.       2 q
  18.       2 h
  19.       2 b
  20.       1 w
  21.       1 v
  22.       1 P
  23.       1 j
  24.       1 g


企业面试题21:输出正方形、等腰三角形、直角梯形,见如下内容

http://oldboy.blog.51cto.com/2561410/1718607



企业面试题22:开发通过web界面展示监控Nginx代理节点状态,效果图如下。

wKioL1Z2j3nCbtimAADO--T7ahw342.jpg


lvs+keepalived集群部分Shell企业案例:

企业面试题23、【LVS主节点】手工开发ipvsadm管理lvs的脚本ip_vs

   实现:/etc/init.d/lvs {start|stop|restart}


企业面试题24、【LVS主节点】模拟keepalived健康检查功能管理LVS节点,

当节点挂掉(检测2次,间隔2秒)从服务器池中剔除,好了(检测2次,间隔2秒)加进来

提示:利用ipvsadm命令实现添加和减少LVS节点。


企业面试题25、【LVS客户端节点】开发LVS客户端设置VIP以及抑制ARP的管理脚本

    实现:/etc/init.d/lvsclient {start|stop|restart}

企业面试题26、【LVS备节点】模拟keepalved vrrp功能,监听主节点,如果主节点不可访问则备节点启动并配置LVS实现接管主节点的资源提供服务(提醒:注意ARP缓存) 


企业面试题27、请用shell或Python编写一个正方形(oldboy_square.sh),接收用户输入的数字。

例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@oldboy ~] # sh oldboy_square1.sh 
Please Enter a number:5
++++++++++
++++++++++
++++++++++
++++++++++
++++++++++
[root@oldboy ~] # sh oldboy_square2.sh  
Please Enter a number:9
■■■■■■■■■
■■■■■■■■■
■■■■■■■■■
■■■■■■■■■
■■■■■■■■■
■■■■■■■■■
■■■■■■■■■
■■■■■■■■■
■■■■■■■■■



     
     
  1. [root@cjy linux -20] # vim 27_1.sh
  2. #!/bin/bash
  3. read -p "Please Enter a number:" a
  4. for ((i= 1;$i<=$a;i++))
  5. do
  6.     for ((j= 1;j<=$(( 2*$a));j++))
  7.     do
  8.         echo -e "+\c"  #不换行
  9.     done
  10.     echo
  11. done


     
     
  1. [root@cjy linux -20] # ./27_1.sh
  2. Please Enter a number: 5
  3. ++++++++++
  4. ++++++++++
  5. ++++++++++
  6. ++++++++++
  7. ++++++++++


     
     
  1. [root@cjy linux -20] # cat 27_2.sh
  2. #!/bin/bash
  3. read -p "Please Enter a number:" a
  4. for ((i= 1;$i<=$a;i++))
  5. do
  6.     for ((j= 1;j<=$a;j++))
  7.     do
  8.         echo -e "■ \c"  #不换行
  9.     done
  10.     echo
  11. done


     
     
  1. [root@cjy linux -20] # ./27_2.sh
  2. Please Enter a number: 9
  3. ■ ■ ■ ■ ■ ■ ■ ■ ■
  4. ■ ■ ■ ■ ■ ■ ■ ■ ■
  5. ■ ■ ■ ■ ■ ■ ■ ■ ■
  6. ■ ■ ■ ■ ■ ■ ■ ■ ■
  7. ■ ■ ■ ■ ■ ■ ■ ■ ■
  8. ■ ■ ■ ■ ■ ■ ■ ■ ■
  9. ■ ■ ■ ■ ■ ■ ■ ■ ■
  10. ■ ■ ■ ■ ■ ■ ■ ■ ■
  11. ■ ■ ■ ■ ■ ■ ■ ■ ■

企业面试题28、请用shell或Python编写一个等腰三角形(oldboy2_triangle.sh),接收用户输入的数字。

例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@oldboy ~] # sh oldboy2_triangle.sh 
Please Enter a number:5
     *
    ***
   *****
  *******
*********
[root@oldboy ~] # sh oldboy2_triangle.sh 
Please Enter a number:8
        *
       ***
      *****
     *******
    *********
   ***********
  *************
***************



     
     
  1. [root@cjy linux -20] # cat 28_1.sh
  2. #!/bin/bash
  3. read -p "Please Enter a number:" a
  4. for ((i= 1;$i<=$a;i++))
  5. do
  6.     for ((h=$(( 2*$a -2*$i));h>= 0;h--))
  7.     do
  8.         echo -e " \c"
  9.     done
  10.     for ((j= 1;j<=$(( 2*$i -1));j++))
  11.     do
  12.         echo -e "*\c"  #不换行
  13.     done
  14.     echo
  15. done


     
     
  1. [root@cjy linux -20] # ./28_1.sh
  2. Please Enter a number: 5
  3.          *
  4.        ***
  5.      *****
  6.    *******
  7. *********
  8. [root@cjy linux -20] # ./28_1.sh
  9. Please Enter a number: 8
  10.                *
  11.              ***
  12.            *****
  13.          *******
  14.        *********
  15.      ***********
  16.    *************
  17. ***************

企业面试题29、请用shell或Python编写一个画直角梯形程序(oldboy4.sh),接收用户输入的参数n,m

例如:

1
2
3
4
[root@oldboy ~] # sh oldboy4.sh 4 6
****
*****
******

27,28,29三道题参考http://oldboy.blog.51cto.com/2561410/1718607


     
     
  1. [root@cjy linux -20] # cat 29.sh
  2. #!/bin/bash
  3. if [[ -n $ 1 ]] && [[ -n $ 2 ]];
  4. then
  5. for ((i=$ 1;$i<=$ 2;i++))
  6. do
  7.     for ((j= 1;j<=$i;j++))
  8.     do
  9.         echo -e "*\c"  #不换行
  10.     done
  11.     echo
  12. done
  13. else
  14.     echo "No given two int arguments,such as $0 5 6!"
  15. fi


     
     
  1. [root@cjy linux -20] # ./29.sh 4 6
  2. ****
  3. *****
  4. ******

企业面试题30:写一套简单的企业代码上线发布系统案例,利用SVN对代码及配置文件进行管理,在办公室服务器上从svn取出指定版本的代码和配置,发布到IDC机房分发机服务器上,在分发服务器或者负载均衡器上或者应用服务器本地实现代码平滑发布、上线、回滚脚本(具体设计请参考课堂讲解的企业代码发布方案)。



                                   
                   
   
   
       
                            文章最后发布于: 2016-07-28 17:27:41                   
   
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
面试中涉及到 Linux shell 的问时,以下是一些常见面试示例: 1. 如何在 Linux 中查找一个文件? 可以使用 `find` 命令进行文件查找,例如:`find /path/to/search -name filename` 2. 如何统计一个文件中特定字符串出现的次数? 可以使用 `grep` 命令结合 `wc -l` 命令进行统计,例如:`grep -o 'pattern' filename | wc -l` 3. 如何查看一个文件的前几行或后几行? 可以使用 `head` 命令查看文件的前几行,例如:`head -n 10 filename`,其中的 `-n 10` 表示显示前 10 行。类似地,使用 `tail` 命令可以查看文件的后几行。 4. 如何在 Linux 中查找一个进程? 可以使用 `ps` 命令结合 `grep` 进行进程查找,例如:`ps -ef | grep process_name` 5. 如何在后台运行一个程序? 可以使用 `nohup` 命令将程序以后台方式运行,例如:`nohup command &` 6. 如何在 Linux 中压缩和解压缩文件? 可以使用 `tar` 命令进行文件压缩和解压缩,例如:`tar -czvf archive.tar.gz files` 表示将文件压缩为 tar.gz 格式的归档文件。 7. 如何将一个文件从本地复制到远程服务器? 可以使用 `scp` 命令进行文件复制,例如:`scp local_file remote_user@remote_host:/remote/path` 8. 如何查看系统的负载情况? 可以使用 `uptime` 命令来查看系统的负载情况,例如:`uptime` 9. 如何在 Linux 中设置环境变量? 可以使用 `export` 命令设置环境变量,例如:`export VARIABLE_NAME=value` 10. 如何查看一个文件的权限和所有者信息? 可以使用 `ls -l` 命令来查看文件的权限和所有者信息,例如:`ls -l filename` 请注意,在面试过程中,可能会有更具体和深入的问涉及到 Linux shell 的使用和功能。这些问仅供参考,你可能需要根据自己的实际经验和知识来回答。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值