免费注册 查看新帖 |

Chinaunix

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

专家座谈——脚本分享与交流(大奖) [复制链接]

论坛徽章:
0
11 [报告]
发表于 2011-09-14 15:42 |只看该作者
邀请嘉宾一栏,全是漏写:

exper1 -> expert1
Sell -> Shell
xiaopan3322 发表于 2011-09-14 15:27



    脚本出错 可以理解

论坛徽章:
0
12 [报告]
发表于 2011-09-14 15:50 |只看该作者
本帖最后由 kns1024wh 于 2011-09-22 11:37 编辑

回复 1# yuhongchun
  1. 1、初学者怎么入门SHELL脚本?               
  2. 初学应该以实用为主,要能够解决问题,如通过脚本访问mysql是实用shell好还是实用perl好,如果项目需要比较紧要实现实现功能需要,那实用mysql -e这个命令 放入到sh文件中就可以,有时间在通过perl或者其他的脚本技术来优化功能。
  3. shell脚本要能用的好,对于linux下的命令要是很清楚的,这个也是要平时积累的。
  4. 2、大家可以分享交流下自己工作的脚本。
  5. 积累、保存、修改、复制,这个是一个好的脚本提升的过程。
  6. 3、希望专家和高手能够交流下脚本提高的心得,方便大家。
  7. 平时多留意将一些手动操作的过程脚本话,规模化的服务器管理,都应使用脚本来控制为好,减少差错和问题。。
复制代码

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
13 [报告]
发表于 2011-09-14 17:01 |只看该作者
本帖最后由 renxiao2003 于 2011-09-18 22:32 编辑

这是个好活动。得参加。
1、初学者怎么入门SHELL脚本?               
说真的,到现在我还是SHELL脚本的初学者。虽然曾经也看过Linux、Unix的Shell编程,但不是很精通,倒是对Linux下的命令熟悉一些,但真的组合起来完成系统管理员的常用工作,还是差了很多。Linux是从Unix发展起来的,所以很多命令可以通用的,除非Unix厂商对命令做了个性化处理。我觉得(或者从我的经验看),初学者学习SHELL脚本,首先要对Linux、Unix的常用命令掌握一些(如果连常用命令都不清楚,那么在脚本中就更不明白了),而后是要掌握一些基本的SHELL语法,这样至少能看明白一些脚本,然后自己根据工作需要写一些脚本。最终看看高人们写的常用的系统管理脚本,然后尽量修改几个完成自己理想中的功能(当然是在自己的实验机上),这样能慢慢地进入精通的行列。
2、大家可以分享交流下自己工作的脚本。
我觉得最成功的就是在我写的备份PostgreSQL数据库的脚本,因为当时用的不是默认密码,面PostgreSQL不支持命令带参数,必须要手输入。当时一直没有找到好的办法,经过一通Google之后,终于发现用expect来完成输入功能。但这个脚本目前找不到了,这是我当时学习脚本比较成功的一次学习。等我有机会找到就帖出来给大家。
3、希望专家和高手能够交流下脚本提高的心得,方便大家。   
因为我不是高手,更不是专家,所以我没有什么心得,也不敢误导大家,在第1点中我已经分享了我的经验了。

论坛徽章:
0
14 [报告]
发表于 2011-09-14 17:06 |只看该作者
财神都成资深版主了
要请客啊

论坛徽章:
0
15 [报告]
发表于 2011-09-14 17:13 |只看该作者
来支持一下酒哥!

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-04 09:55:28IT运维版块每日发帖之星
日期:2016-07-29 06:20:00
16 [报告]
发表于 2011-09-14 17:13 |只看该作者
回复 6# yuhongchun


    可以记住两个选项与两个参数
首先两个选项:
1,bash -n ,检查语法
2,bash -x ,查看执行过程
两个参数在脚本中设置)
set -e ,变量检查
set -u ,遇到错误退出

论坛徽章:
0
17 [报告]
发表于 2011-09-14 17:13 |只看该作者
奖品很丰厚咧,这个必须顶!

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-04 09:55:28IT运维版块每日发帖之星
日期:2016-07-29 06:20:00
18 [报告]
发表于 2011-09-14 17:15 |只看该作者
回复 14# yahoon


    啥时候变成资深了...兄弟捧场而已,哈哈

论坛徽章:
6
丑牛
日期:2013-09-17 00:18:40未羊
日期:2013-10-31 12:10:47午马
日期:2013-12-07 01:58:50水瓶座
日期:2013-12-24 22:43:12水瓶座
日期:2014-03-15 21:12:13操作系统版块每日发帖之星
日期:2016-08-07 06:20:00
19 [报告]
发表于 2011-09-14 17:15 |只看该作者
回复  yuhongchun


    可以记住两个选项与两个参数
首先两个选项:
1,bash -n ,检查语法
2,bash -x ...
ning_lianjie 发表于 2011-09-14 17:13


不错,经验之谈

论坛徽章:
0
20 [报告]
发表于 2011-09-14 17:24 |只看该作者
本帖最后由 king_819 于 2011-09-15 10:21 编辑

先晒一个入门级的脚本吧,在通过cobbler批量布署centos后,各服务器的hostname、ip、mask、gateway、dns都需要初始化,在这我就提供一个入门级的初始化脚本

  1. #!/bin/sh
  2. # BY kerry (聆听未来)
  3. # BLOG:http://kerry.blog.51cto.com

  4. # set variable
  5. ip_mod=$1
  6. mask_mod=$2
  7. gw_mod=$3
  8. dns_mod=$4
  9. hostname_mod=$5

  10. hosts=/etc/hosts
  11. ifcfg=/etc/sysconfig/network-scripts/ifcfg-eth0
  12. network=/etc/sysconfig/network
  13. resolv=/etc/resolv.conf
  14. hwaddr=`grep -i HWADDR $ifcfg|awk -F "=" '{print $2}'`

  15. # mod ip、mask、gw、dns、hostname
  16. if [ $# != 5 ];then
  17. cat << EOF
  18. +-----------------------------------------------------------------------------------+
  19. ++++++                                                                                +++++
  20. | ====   这是一个自动修改网络ip、掩码、网关、DNS、主机名的脚本                  ====|
  21. | ====   使用方法:ip_mod ip mask gw dns hostname                                ====|
  22. | ====   例:ip_mod 10.10.10.5 255.255.255.0 10.10.10.1 8.8.8.8 kerry           ====|
  23. ++++++                                                                                +++++
  24. +-----------------------------------------------------------------------------------+
  25. EOF
  26. fi

  27. if [ $# == 5 ];then
  28. /bin/hostname $hostname_modf
  29. cp -r $hosts ${hosts}.bak
  30. echo -e "$ip_mod $hostname_mod" > $hosts

  31. cp -r $ifcfg ${ifcfg}.bak
  32. echo -ne "DEVICE=eth0
  33. BOOTPROTO=static
  34. HWADDR=$hwaddr
  35. IPADDR=$ip_mod
  36. NETMASK=$mask_mod
  37. ONBOOT=yes
  38. " > $ifcfg

  39. cp -r $network ${network}.bak
  40. echo -ne "NETWORKING=yes
  41. HOSTNAME=$hostname_mod
  42. GATEWAY=$gw_mod
  43. " > $network

  44. cp -r $resolv ${resolv}.bak
  45. echo -e "nameserver $dns_mod" > $resolv

  46. # restart network
  47. service network restart

  48. echo "ip、mask、gw、dns、hostname set OK .................!!!!!!!"
  49. fi
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP