- 1、本文档共39页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 编写Shell管理脚本(一)
* 通过提问的方式小结前面讲解的主要知识点 部分答案提示: 【1】/bin/bash 【2】双引号,允许通过$符号引用变量值;单引号,禁止引用变量值,按原始字符串处理;反撇号,将命令操作的屏幕输出结果复制给变量 【3】echo $PWD 【4】expr 13 \* 17 * Shell脚本类似于Windows系统中.bat批处理文件,只需要有相应的命令解释器即可,不需要编译 Shell脚本是为了完成一定的管理任务才创建的,因此脚本文件中的各条命令并不是杂乱无章随便放置的,需要用户进行组织和设计 将管理员在命令行单独执行的多个命令,放到一个文件中一次执行,这个文件就是“Shell脚本”的雏形了 —— 下面看一个例子(翻下页) * 注意强调:Shell脚本中的执行语句,通常也就是管理员在命令行能执行的命令,例如本例中的4条命令(echo “Usage of /boot”、du -sh /boot……) 在脚本文件的各组成部分中,只有可执行语句是必不可少的(否则就不叫程序了) 当缺省运行环境设置时,会自动由当前加载该脚本的Shell解释器负责解释执行 Shell脚本文件的扩展名并无严格的约束,不一定非得是“.sh”结尾的 * 脚本程序可以通过多种方式运行: 在调试阶段可以使用Shell程序直接调用脚本文件,不要求脚本具有可执行权限,格式是:bash 脚本名 为脚本文件设置了可执行属性后,在Shell命令行中可以直接通过脚本文件的路径执行脚本程序 使用Bash的内部命令“.”脚本文件执行时,将不会开启新的Shell环境。使用这种方式时,脚本文件作为“.”命令的参数,因此同样不要求具备可执行权限。 * 介绍案例背景和需求,演示脚本编写及操作过程,需要确保crond任务在正常运行。案例背景: —— 由于公司的文件服务器空间有限,需要定期进行清理 首先引导学员思考不使用脚本如何完成该案例,然后讲解脚本的应用,尽量使学员明白”将分散执行的命令组织成脚本“的思路 页面中已省略为脚本文件添加“x”权限的步骤,演示过程中注意不要遗忘 验证结果也包括两个部分:1)执行脚本能正常获得结果;2)计划任务能按时执行(可适当修改系统时间) * 介绍案例背景和需求,讲解脚本编写及操作过程(如果还有时间,也建议演示),需要确保crond任务在正常运行。案例背景: —— 公司内网开发服务器中的数据库目录位于“/var/lib/mysql”,根据数据安全管理要求,要求至少每隔3天做一次完整备份 本示例比上一个略复杂一些,注意消除学员的畏难情绪,说明一点:脚本内容可以随便写(不需要和教材中的完全一样,不要生搬硬套),只要能完成案例要求,基本就算是” 成功“的脚本 页面中已省略为脚本文件添加“x”权限的步骤,演示过程中注意不要遗忘 DAY=`date +%Y%m%d`用于设置date命令查询信息的显示格式,如${DAY}.tar.gz 表示的是要生成的文件名,当变量名称可能容易和紧跟其后的其他字符相混淆时,需要添加大括号“{}”包围起来(这是引用变量的一种习惯,可以有效的减少变量引用错误的发生) * 总结本次课程的主要内容,明确学员还存在哪些疑问需要解答 参考问题: 1. 如何自定义新的Shell变量? 2. 为变量赋值时可以通过单引号、双引号、反撇号提供更灵活的方式,其各自的作用及区别是什么? 3. Shell的位置变量的用途是什么,如何引用?常见的预定义变量有哪些,各自的作用是什么? 4. Shell脚本文件由哪几个部分组成,如何执行Shell脚本文件? 5. ……? * 从本页开始(到最后)的PPT部分放在实验课上进行讲解,不要放在理论课上讲解 * 阶段一的指导子阶段 1、教师介绍案例需求 —— 为了更便于对各种系统服务进行管理,并了解服务器的相关运行参数,管理员(root)希望对自己的Shell环境进行定制,以提高系统管理和维护效率 2、在介绍完案例需求后,教师也可以向学员提问如何解决该问题 —— 需要注意:有些系统服务的名称,可能会与主执行程序同名,例如网站服务/etc/init.d/httpd与/usr/sbin/httpd、/etc/init.d/crond与/usr/sbin/crond等,对于这些服务,用”服务名 start“的形式时,可能会有冲突。所以,原则上对于系统服务来说,还是建议用”service 服务名 start“的控制方式,或者用绝对路径”/etc/init.d/服务脚本 start“的形式。建议引导学员改用其他无冲突的服务脚本(如mysqld、bluetooth等)进行测试。 * 阶段一的指导子阶段(续) 3、教师介绍实现思路 强调先在命令行实现需求,然后组织成脚本文件,
文档评论(0)