免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: rdcwayx
打印 上一主题 下一主题

[学习共享] 新人练手 - shell脚本编程-系统工程师面试题 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2013-11-12 15:05 |只看该作者
回复 19# Shell_HAT

多谢指导,那以后要等宽输出,譬如千分表,还是用
  1. function range3()
  2. {
  3.   echo "" | awk '{
  4.     for(i=0;i<1000;i++){
  5.       printf("%03d\n",i);
  6.     }
  7.   }'
  8. }
复制代码

论坛徽章:
1
2015亚冠之吉达阿赫利
日期:2015-09-09 16:42:38
22 [报告]
发表于 2013-11-12 15:11 |只看该作者
咋没人来回答简述题

论坛徽章:
0
23 [报告]
发表于 2013-11-12 15:15 |只看该作者
回复 9# 关阴月飞

能不能请教下 \047的用途呢?
   

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
24 [报告]
发表于 2013-11-12 15:21 |只看该作者
3.在每个月的第一天备份并压缩/etc目录下的所有内容,存放在/root/backup目录里,且文件名为如下形式yymmdd_etc,yy为年,mm为月,dd为日。shell程序 fileback存放在/usr/bin 目录下?

博主给的答案是:
  1. tar -zcf /root/backup/`date +%y%m%d`_etc /etc
复制代码
感觉他没有完全体会到出题者的意图,至少应该加个 cron job 嘛:
  1. 0 0 1 * * /usr/bin/fileback > /root/backup/fileback.log 2>&1
复制代码
为了彰显一下我们知道某些 UNIX 系统的 tar 命令不支持 -z 选项:
  1. FILE_NAME=`date +%y%m%d`_etc
  2. tar -cf /root/backup/${FILE_NAME} /etc
  3. gzip /root/backup/${FILE_NAME}
复制代码
为了彰显一下我们知道 tar 和 gzip 可以通过管道连接起来
  1. FILE_NAME=`date +%y%m%d`_etc
  2. tar -cf - /etc | gzip -c > /root/backup/${FILE_NAME}
复制代码

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
25 [报告]
发表于 2013-11-12 15:34 |只看该作者
回复 24# dandy1992


    \047 是单引号

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-08-24 06:20:00综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00IT运维版块每日发帖之星
日期:2015-10-25 06:20:00IT运维版块每日发帖之星
日期:2015-11-06 06:20:00IT运维版块每日发帖之星
日期:2015-12-10 06:20:00平安夜徽章
日期:2015-12-26 00:06:302016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-04-15 06:20:00IT运维版块每日发帖之星
日期:2016-05-21 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-14 06:20:00
26 [报告]
发表于 2013-11-12 16:31 |只看该作者
这些题几年前貌似去Baidu/Tencent做过,哎,其实TAB没那么好,比它好的公司多的是。跑题了貌似。

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
27 [报告]
发表于 2013-11-12 16:31 |只看该作者
回复 13# by917611


(5).在早上 8:00 开机后启动。

不知道出题者的本意是要考察什么知识点。博主给的答案是:
设定BIOS每日上午 08:00开机

1、这几道题目是大都是跟Shell编程密切相关的,应该不会考察BIOS设置。
2、题目中没有提到每天都会关机。
3、实际项目中定时开机没什么意义。

本着彰显我们丰富经验的目的,可以从以下两个方面做解答:
1、在开机脚本里面判断当前时间是不是8点
2、在 cron job 里面判断上次开机时间
0 8 * * * /var/tmp/check_uptime.sh

不过,也许题目的本意是说,管理员每天早上8点前到公司之后会按开机按钮,只要保证前面4条在 cron job 里面就行了。

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
28 [报告]
发表于 2013-11-12 16:42 |只看该作者
本帖最后由 关阴月飞 于 2013-11-12 16:43 编辑

回复 28# Shell_HAT


    目测这个应该是想考 “如何让一个东东在服务器开机时自启动”, 所以感觉答案应该偏向于:在rc.local 之类的文件中把要执行的东东写上

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
29 [报告]
发表于 2013-11-12 16:58 |只看该作者
本帖最后由 Shell_HAT 于 2013-11-12 16:59 编辑

回复 15# li0924


6: sort -t":" -k1n fi01|awk '{print a[$1]++?"[" $1 "]" RS $2:$2}'

你这个写反了吧,应该是:
  1. sort -t: -k1n qq.tel | awk -F: '{print a[$1]++?$2:"[" $1 "]" RS $2}'
复制代码

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
30 [报告]
发表于 2013-11-12 17:15 |只看该作者
考虑到数据可能是这个样子的:
12334:13510014336
12345:12334555666
12334:12343453453
2099:13598989899
12334:12345454545
2099:2343454544

我觉得 sort 命令这样写更加严谨:
sort -t: -k1,1n -k2n qq.tel | awk -F: '{print $1==t?$2:"["$1"]\n"$2}{t=$1}'
sort -t: -k1,1n -k2n qq.tel | awk -F: '{print a[$1]++?$2:"[" $1 "]" RS $2}'

@yestreenstars
@li0924

另外,@dandy1992,你那样在awk的END里面用hash数组是无法保证有序的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP