《Shell脚本基础》PPT课件
- 格式:ppt
- 大小:394.01 KB
- 文档页数:31
shell脚本基础练习题1、判断/etc/inittab⽂件是否⼤于100⾏,如果⼤于,则显⽰”/etc/inittab is a big file.”否者显⽰”/etc/inittab is a small file.”#!/bin/bash#判断⽂件⾏数是否⼤于100⾏if [ `wc -l /etc/inittab | awk '{print $1}'` -gt 100 ];then echo "/etc/inittab is a big file."else echo "/etc/inittab is a samll file."fi2、给定⼀个⽤户,来判断这个⽤户是什么⽤户,如果是管理员⽤户,则显⽰“该⽤户为管理员”,否则显⽰“该⽤户为普通⽤户”#!/bin/bash#判断⽤户类型`a=`id -u $1`if [ $a -eq 0 ];then echo "这是管理员⽤户"else echo "普通⽤户"fi3、判断某个⽂件是否存在#!/bin/bash#判断⽂件是否存在if [ -e $1 ];then echo "存在"exit 0else echo "不存在"fi4、判断当前系统上是否有⽤户的默认shell程序是否为bash程序,如果有,就显⽰有多个这类⽤户,否则就显⽰没有这类⽤户;【并且显⽰出那些⽤户是bash】⽅法⼀:#!/bin/bash#判断⽤户默认shell程序类型a=`grep "/bin/bash" /etc/passwd | wc -l`if [ $a -gt 0 ] ;then echo "存在bash⽤户有 $a 个"else echo "不存在"fi⽅法⼆:#!/bin/bash#判断⽤户的默认shell程序类型declare -i sum=`grep "/bin/bash" /etc/passwd | wc -l`if grep "/bin/bash" /etc/passwd &> /dev/null;then echo "存在 $sum 个⽤户,shell程序为/bin/bash" grep "/bin/bash" /etc/passwd | cut -d: -f1 exit 0else echo "没有这类⽤户"exit 1fi5,输⼊⼀个设备⽂件,输出这个设备⽂件的基本信息:#!/bin/bash#查看设备⽂件信息read -t 10 -p "输⼊⼀个设备⽂件名:" devname[ -z $devname ] && devname=`fdisk -l` && exit 1if [ -b /dev/$devname ];then fdisk -l /dev/$devname exit 0else echo "$devname 不是设备⽂件" echo "Usage:请输⼊⼀个设备⽂件,如 sda" exit 2fi6,shell编写99乘法表#!/bin/bash#99乘法表for i in `seq 9`;do for j in `seq 9`;do [ $j -le $i ] && echo -n -e "$i*$j=`echo $(($i*$j))`\t" done echo " "done7,统计netstat -tan类型declare -i L=0declare -i E=0declare -i o=0for i in $(netstat -tan | grep "^tcp" | awk '{print $6}');do if [ $i = LISTEN ];then let L++ elif [ $i = ESTALISHED ];then let E++ else let o++fidoneecho "坚挺的链接有: $L"echo "其他链接有: $o"echo "家⾥链接有: $E"8,计算1-100内偶数的和#!/bin/bash#1-100内偶数的和declare -i sum=0 for i in $(seq 0 2 100);do let sum+=$idoneecho "和 $sum"。
第一课0. Python 是什么类型的语言?Python是脚本语言脚本语言(Scripting language)是电脑编程语言,因此也能让开发者藉以编写出让电脑听命行事的程序。
以简单的方式快速完成某些复杂的事情通常是创造脚本语言的重要原则,基于这项原则,使得脚本语言通常比C语言、C++语言或Java 之类的系统编程语言要简单容易。
也让脚本语言另有一些属于脚本语言的特性:•语法和结构通常比较简单•学习和使用通常比较简单•通常以容易修改程序的“解释”作为运行方式,而不需要“编译”•程序的开发产能优于运行性能一个脚本可以使得本来要用键盘进行的相互式操作自动化。
一个Shell脚本主要由原本需要在命令行输入的命令组成,或在一个文本编辑器中,用户可以使用脚本来把一些常用的操作组合成一组串行。
主要用来书写这种脚本的语言叫做脚本语言。
很多脚本语言实际上已经超过简单的用户命令串行的指令,还可以编写更复杂的程序。
1. IDLE 是什么?IDLE是一个Python Shell,shell的意思就是“外壳”,基本上来说,就是一个通过键入文本与程序交互的途径!像我们Windows那个cmd窗口,像Linux那个黑乎乎的命令窗口,他们都是shell,利用他们,我们就可以给操作系统下达命令。
同样的,我们可以利用IDLE这个shell与Python进行互动。
2. print() 的作用是什么?print() 会在输出窗口中显示一些文本(在这一讲中,输出窗口就是IDLE shell 窗口)。
3. Python 中表示乘法的符号是什么?Python中的乘号是*(星号)。
4. 为什么>>>print('I love ' * 5) 可以正常执行,但>>>print('I love ' + 5) 却报错?在Python 中不能把两个完全不同的东西加在一起,比如说数字和文本,正是这个原因,>>>print('I love ' + 5) 才会报错。
“Linux 网络技术”课程标准招生对象:高中毕业生及同等学力者教学时数:70H学历层次:高职课程代码:091036修业年限:全日制三年学分数: 4.0适用专业:计算机网络技术制订人:胡志锋一、课程概述1.课程定位本课程是我校计算机网络技术专业第四学期的一门专业课程,通过本课程的学习,使学生能够掌握利用Linux操作系统构建企业的服务器网络环境、使用网络资源,并能够进行日常的网络管理与维护等知识,具备维护基于Linux平台的网络环境的能力。
本课程的前导课程有《计算机应用基础》、《计算机网络技术》《Windows网络技术》等,后续课程包括《网络互连技术》、《网络安全与维护技术》等。
2.设计思路本课程是依据我校计算机网络技术专业人才培养方案中,针对计算机网络管理与维护等相关知识而设置的。
其总体设计思路是,实践教学的设计是以企业的网络环境和岗位需求为依据,目标是通过实践教学,让学生掌握利用Linux操作系统能够构建网络环境、管理网络、使用网络资源的技能。
(1)内容设计依据课程目标,本课程的学习内容应包括构建网络环境、使用网络资源,管理网络。
其中构建网络环境主要要求学生掌握Linux 网络操作系统的安、Linux 环境下系统管理、用户和组的管理、磁盘的管理等;使用网络资源主要要求学生掌握samba服务器、NFS服务器等,管理网络主要要求学生在已安装的网络操作系统的基础上进行各种服务器的配置、管理与维护。
在任务、项目实现中掌握相关知识技能,达到知识、技能、素质的综合培养目标。
(2)教学设计教研室通过多年不断探索和改革,根据我校现有教学设备条件和教学内容的特点,采用多种教学方法进行教学,能有效地调动学生的学习积极性,促进学生积极思考,激发学生的潜能。
1、课堂教学中,对原有单一的讲授式教学法进行了改革和创新,采用问题导入式教学法,案例教学法、提问式教学法,加强师生互动。
2、在具备多媒体教学条件下,充分利用ppt课件进行教学,使用虚拟机构建教学环境,通过讲解与演示,以此增强学生的感性知识和视觉效果,提高学生的学习兴趣,加大课堂教学信息量,增强学生学习主动性和自觉性。
shell程序linux课程设计一、课程目标知识目标:1. 理解Shell的基本概念,掌握其在Linux系统中的作用和重要性。
2. 学会使用基本的Shell命令,如文件操作、目录切换、权限管理等。
3. 掌握Shell脚本编写的基础知识,包括变量定义、流程控制、函数等。
4. 能够运用所学知识解决实际问题,如编写简单的自动化脚本。
技能目标:1. 培养学生熟练使用Linux终端和Shell命令的能力。
2. 培养学生编写和调试简单Shell脚本的能力。
3. 培养学生运用Shell脚本实现自动化任务的能力。
情感态度价值观目标:1. 培养学生对Linux系统和Shell编程的兴趣,激发学习热情。
2. 培养学生面对问题时的独立思考、解决问题的能力。
3. 培养学生的团队协作意识,学会与他人分享和交流学习经验。
课程性质:本课程为Linux shell程序设计,旨在让学生掌握Shell编程的基本知识,提高其在Linux系统下的操作能力和解决问题的能力。
学生特点:学生具备一定的计算机基础知识,对Linux系统有一定了解,但Shell编程经验较少。
教学要求:结合学生特点,课程设计应注重实践,以实例为主线,引导学生动手实践,提高其编程能力和实际操作能力。
将目标分解为具体的学习成果,以便后续的教学设计和评估。
二、教学内容1. Shell概述- Shell的定义与作用- 常见的Shell类型及特点2. 基本Shell命令- 文件和目录操作命令:ls、cd、pwd、mkdir、rm、cp、mv - 权限管理命令:chmod、chown- 文本处理命令:cat、grep、sort、uniq、cut、awk3. Shell脚本编写基础- 变量定义与使用- 流程控制语句:if、for、while- 函数的定义与调用4. Shell脚本实例分析- 简单自动化脚本编写- 系统监控脚本编写- 文件处理脚本编写5. Shell脚本调试与优化- 常见错误类型及解决方法- 调试技巧与优化策略教学内容安排与进度:1. 第1周:Shell概述及基本概念2. 第2周:基本Shell命令学习3. 第3周:Shell脚本编写基础4. 第4周:Shell脚本实例分析5. 第5周:Shell脚本调试与优化教材章节关联:1. Shell概述:《Linux操作系统》第3章2. 基本Shell命令:《Linux操作系统》第4章3. Shell脚本编写基础:《Linux Shell编程》第2章4. Shell脚本实例分析:《Linux Shell编程》第3章5. Shell脚本调试与优化:《Linux Shell编程》第4章三、教学方法本课程将采用以下教学方法,以促进学生主动学习,提高教学效果:1. 讲授法:教师通过讲解Shell编程的基本概念、语法和技巧,为学生提供必要的理论知识。
第1课0.Python 是什么类型的语言?Python是脚本语言脚本语言(Scripting language)是电脑编程语言,因此也能让开发者藉以编写出让电脑听命行事的程序。
以简单的方式快速完成某些复杂的事情通常是创造脚本语言的重要原则,基于这项原则,使得脚本语言通常比C语言、C++语言或Java 之类的系统编程语言要简单容易。
也让脚本语言另有一些属于脚本语言的特性:语法和结构通常比较简单学习和使用通常比较简单通常以容易修改程序的“解释”作为运行方式,而不需要“编译”程序的开发产能优于运行性能一个脚本可以使得本来要用键盘进行的相互式操作自动化。
一个Shell脚本主要由原本需要在命令行输入的命令组成,或在一个文本编辑器中,用户可以使用脚本来把一些常用的操作组合成一组串行。
主要用来书写这种脚本的语言叫做脚本语言。
很多脚本语言实际上已经超过简单的用户命令串行的指令,还可以编写更复杂的程序。
1. IDLE 是什么?IDLE是一个Python Shell,shell的意思就是“外壳”,基本上来说,就是一个通过键入文本与程序交互的途径!像我们Windows那个cmd窗口,像Linux那个黑乎乎的命令窗口,他们都是shell,利用他们,我们就可以给操作系统下达命令。
同样的,我们可以利用IDLE这个shell与Python进行互动。
2. print() 的作用是什么?print() 会在输出窗口中显示一些文本(在这一讲中,输出窗口就是IDLE shell 窗口)。
3. Python 中表示乘法的符号是什么?Python中的乘号是*(星号)。
4. 为什么>>>print('I love ' * 5) 可以正常执行,但>>>print('I love ' + 5) 却报错?在Python 中不能把两个完全不同的东西加在一起,比如说数字和文本,正是这个原因,>>>print('I love ' + 5) 才会报错。
shell脚本编程基础⾯试题⼀级标题shell脚本编程基础1、编写脚本/root/bin/systeminfo.sh,显⽰当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本, CPU型号,内存⼤⼩,硬盘⼤⼩[root@magedu ~]# vim sysinfo.sh#!/bin/bashipv4=`ifconfig |egrep -o "\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[01][0-9]|22[0-3])\>(\.\<([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>){2}\.\<([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>"`echo "当前主机系统信息如下:"echo 主机名: `hostname`echo ipv4地址:"$ipv4"echo 操作系统版本: `cat /etc/redhat-release |cut -d. -f1-2`echo 内核版本: `uname -r`echo CPU型号: `lscpu |grep "Model name"|tail -1 |tr -s ' '|cut -d: -f2`echo 内存⼤⼩: `free -mh |head -2|tail -1|tr -s ' '|cut -d' ' -f2`echo 硬盘容量: `fdisk -l|head -2|tail -1|cut -d, -f1|cut -d' ' -f2-4`带颜⾊的版本。
2、编写脚本/root/bin/backup.sh,可实现每⽇将/etc/⽬录备份到/root/etcYYYY-mm-dd中[root@magedu ~]# vim /root/bin/backup.sh#!/bin/bashcp -a /etc/ /root/etc`date +%Y-%m-%d`echo "/etc⽬录备份完成"3、编写脚本/root/bin/disk.sh,显⽰当前硬盘分区中空间利⽤率最⼤的值[root@magedu ~]# vim /root/bin/disk.sh#!/bin/bashecho "当前硬盘分区中空间利⽤率最⼤的值: `df |grep /dev/sd |grep -o "[0-9]\{1,3\}%" |sort -rn|head -1`4、编写脚本/root/bin/links.sh,显⽰正连接本主机的每个远程主机的IPv4地址和连接数,并按连接数从⼤到⼩排序[root@magedu ~]# vim /root/bin/links.sh#!/bin/shecho "每个远程主机的IPv4地址和连接数:`netstat -tan |tr -s " " ":"|cut -d: -f6|grep ^[[:digit:]]|sort|uniq -c |sort -nr`"1、编写脚本sumid.sh,计算/etc/passwd⽂件中的第10个⽤户和第20⽤户的ID之和[root@magedu ~]# vim /root/bin/sumid.sh#!/bin/baship1=`cat /etc/passwd |head -10 | tail -1|cut -d: -f3`ip2=`cat /etc/passwd |head -20 | tail -1|cut -d: -f3`let sum=ip1+ip2echo $sum2、编写脚本sumspace.sh,传递两个⽂件路径作为参数给脚本,计算这两个⽂件中所有空⽩⾏之和##[root@magedu ~]# vim /root/bin/sumspace.sh#!/bin/shspace1=`cat $1 |grep "^$"|wc -l`space2=`cat $2 |grep "^$"|wc -l`let sum=space1+space2echo "两个⽂件中所有空⽩⾏之和:$sum"3、编写脚本sumfile.sh,统计/etc, /var, /usr⽬录中共有多少个⼀级⼦⽬录和⽂件[root@magedu ~]# vim /root/bin/sumfile.sh#!/bin/bashnumetc=ls -A /etc|wc -lnumvar=ls -A /var|wc -lnumusr=ls -A /usr|wc -llet sum=numetc+numvar+numusrecho $sum1、编写脚本argsnum.sh,接受⼀个⽂件路径作为参数;如果参数个数⼩于1,则提⽰⽤户“⾄少应该给⼀个参数”,并⽴即退出;如果参数个数不⼩于1,则显⽰第⼀个参数所指向的⽂件中的空⽩⾏数[root@magedu ~]# vim argsnum.sh#!/bin/bash[[ $# -lt 1 ]] && (echo "at least one argument"&&exit)|| echo `grep '^$' $1|wc -l`2、编写脚本hostping.sh,接受⼀个主机的IPv4地址做为参数,测试是否可连通。
怎么用shell脚本写一个HelloWorld
Unix/linux可以带你进入shell(Bash)的殿堂,但是它不会涉及太多的知识,只是一个Hello World。
下面是店铺收集整理的怎么用shell脚本写一个HelloWorld,希望对大家有帮助~~
用shell脚本写一个HelloWorld的方法
工具/原料
一台装有bash的Unix或者类Unix系统
方法/步骤
1登入bash。
touch HelloWorld.sh
新建一个HelloWorld.sh文件,bash没有明文规定需要.sh标识,但是为了统一规范,请使用.sh标识。
别做奇葩。
vim打开它。
没有vim用vi。
按下A或者I或者insert插入。
输入以下内容:
#!/bin/bash
echo Hello World!
#!/bin/bash
#!是代表这是一个解释程序
/bin/bash是bash的绝对路径。
echo 是一个打印命令,它会把参数内容当做字符串打印到STDOUT(标准输出设备),当然,有一些参数,例如-e可以让它识别转义字符。
现在,我们按下ESC
输入“:”
请原谅我把它们分为两个部分,原因是我怕你搞混其中的语意。
输入:wq
保存退出。
w是write写的意思
q是quit退出的意思
然后按下回车
保存完它会自动退出vim 最后
bash HelloWorld.sh
运行它。
然后看到结果。
为什么要进行shell编程 Linux系统中虽然有各种各样的图形界面工具,但shell仍然是一个非常灵活的工具。
Shell不仅集合了大量命令,还是一门非常棒的编程语言。
借助shell,大量任务能实现自动化;shell特别擅长系统管理任务,尤其适合那些易用性、可维护性和便携性比效率更重要的任务。
下面,让我们一起来看看shell是如何工作的:建立一个脚本 Linux中有许多种不同的shell,通常我们使用bash (bourne again shell) 进行shell编程因为bash不仅免费(自由)且易于使用。
本文提供的脚本都用bash(当然大多数情况下,这些脚本同样可以在bash的前辈, bourne shell中运行)执行。
如同其他语言一样,我们可以使用任意一种文字编辑器,比如nedit、kedit、emacs、vi 等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行):代码:#!/bin/bash 符号#!用来告诉系统执行该脚本的程序,本例使用/bin/sh。
编辑完了,如果要执行该脚本,还必须使其可执行:代码:chmod +x filename 这样输入 ./filename 便可执行该脚本。
注释 shell脚本中以# 开始的行表示注释,直到一行的结束。
我们真诚的建议你在脚本中使用注释,这样即便在相当长时间内没有使用该脚本,你也能在短时间内明白该脚本的作用和工作原理;此外还有很重要的原因——有了注释,更利于和别人分享你的脚本。
变量 在其它编程语言中,你必须使用变量。
shell编程中,所有变量都由字符串组成,并且不需要声明。
要给一个变量赋值,你可以这么写:代码:变量名=值 在变量名之前加一个$,就可以取出变量值:代码:#!/bin/sh#对变量赋值:a="hello world"# 打印变量a的值:echo "A is:" $a 挑个自己喜欢的编辑器,输入以上内容,并保存为文件first,然后执行 chmod +x first 使其可执行,最后输入 ./first 执行该脚本。
shell基础知识总结1. shell 对于⼀台计算机⽽⾔,其硬件受系统内核的控制,使⽤者想要控制计算机,就必须有与系统内核进⾏通讯的⼿段。
⽽shell就是使⽤者与计算机进⾏通讯的⼿段之⼀。
从命名上看,shell其实是相对于kernel(内核)⽽⾔,指系统与外界(使⽤者)进⾏接触的部分,⼀个提供系统功能给⽤户使⽤的软件,它接受来⾃⽤户的指令,然后调⽤相应的应⽤程序。
为了满⾜不同的需求,shell提供了两种执⾏命令⽅式:a. 交互式:解释并执⾏⽤户输⼊的命令或者⾃动地解释和执⾏预先设定好的⼀连串的命令。
b. 程序设计式:作为⼀种脚本语⾔,提供变量、控制结构和函数,再通过解释器解释并执⾏。
Linux上常见的shell有sh、bash、ksh、tcsh等,不同解释器在某些语法的执⾏⽅⾯可能有些不同。
通过查看/etc/shells⽂件就可以知道本系统所⽀持的shell解释器类型。
如shells的⽂件内容如下:ryeshen@~$ cat /etc/shells/bin/sh/bin/bash/sbin/nologin/usr/bin/sh/usr/bin/bash/usr/sbin/nologin/bin/tcsh/bin/csh/bin/ksh/bin/zsh ⽽linux默认是⽤的解释器是bash。
在脚本头可以声明本脚本所使⽤的解释器,声明⽅式: #!/bin/bash2. 变量a. 赋值赋值⽅式:variable_name = variable_value等号两边不能有空格符;增加变量内容:PATH=”$PATH”:/home/bin取消变量:unset variable_name变量类型:可以使⽤declare [[-/+]aixr] [name[=value] …],其中-表⽰赋予变量属性,+表⽰去除变量属性,a-数组,i-整数,r-只读,x-环境变量b. ⾃定义变量与环境变量使⽤“=”赋值得到的⾃定义变量,这个变量的作⽤域为当前shell进程。
Shell 脚本基础学习笔记shell脚本的解释用“#”号,本文档为了习惯方便,解释大都用“//”,也有用“#”的SHELL 最基本的语法基本元字符集及其含义(2008-05-24)abc 表示abc 三個連續的字符, 但彼此獨立而非集合. (可簡單視為三個char set)(abc) 表示abc 這三個連續字符的集合. (可簡單視為一個char set)a|b 表示單一字符, 或a 或b .(abc|xyz) 表示或abc 或xyz 這兩個char. set 之一. (註二)[abc] 表示單一字符, 可為a 或b 或c . (與wildcard 之[abc] 原理相同)[^abc] 表示單一字符, 不為a 或b 或c 即可. (與wildcard 之[!abc] 原理相同)^ 只匹配行首$ 只匹配行尾* 只一个单字符后紧跟*,匹配0个或多个此单字符[ ] 只匹配[ ]内字符。
可以是一个单字符,也可以是字符序列。
可以使用-表示[ ]内字符序列范围,如用[ 1 - 5 ]代替[ 1 2 3 4 5 ]\ 只用来屏蔽一个元字符的特殊含义。
因为有时在s h e l l中一些元字符有特殊含义。
\可以使其失去应有意义. 只匹配任意单字符p a t t e r n \ { n \ } 只用来匹配前面p a t t e r n出现次数。
n为次数p a t t e r n \ { n,\ }含义同上,但次数最少为np a t t e r n \ { n,m \ }含义同上,但p a t t e r n出现次数在n与m之间现在详细讲解其中特殊含义1、使用句点匹配单字符例一:beg.n:以beg开头,中间夹一个任意字符。
例二:. . . .X C. . . .:共10个字符,前四个之后为XC例三:列出所有用户都有写权限的目录或文件:ls -l |grep ...x..x..x2、行首以^匹配字符串或字符序列^只允许在一行的开始匹配字符或单词。
关于aix取CPU、内存、硬盘shell脚本这个shell实现的是aix操作系统取CPU、内存、硬盘利用率。
Shell脚本实现的是取出来内存、硬盘、CPU利用率,存到oracle 的表中。
dcmd_util.config 中保存的是一些配置信息。
dcmd_util.config内容如下:配置的是要连接的oracle的数据库、用户名、密码。
server_ip:192.168.100.88database_name:orcldatabase_user:testdatabase_passwd:testpwdcollect_id:5dcmd_util.sh内容如下:#!/bin/shexport LANG=C;config_path='/opt/oracle';echo $config_path;cpu_util=`sar -u 50 1|tail -n 1|awk '{print $4+$2+$3}'`;mem_use=`svmon|head -n 2|tail -n 1|awk '{print $3}'`;mem_size=`svmon|head -n 2|tail -n 1|awk '{print $2}'`;mem_util=`svmon|head -n 2|tail -n 1|awk '{print $3*100/$2}'`;echo $cpu_util;echo $mem_use;echo $mem_util;echo $mem_size;df=`df`;cnt=`df -g|wc -l`;while [ $cnt -gt 1 ]dofilesystem[$cnt]=`df -g|head -n $cnt |tail -n 1|awk '{print $1}'`;size[$cnt]=`df -g|head -n $cnt |tail -n 1|awk '{print ($2)}'`;used[$cnt]=`df -g|head -n $cnt |tail -n 1|awk '{print (($2-$3))}'`;use[$cnt]=`df -g|head -n $cnt |tail -n 1|awk '{print $4}'|awk -F% '{print $1}'`;mounted[$cnt]=`df -g|head -n $cnt |tail -n 1|awk '{print $7 $8 $9}'`;echo ${filesystem[$cnt]};echo ${size[$cnt]};echo ${used[$cnt]};echo ${use[$cnt]};echo ${mounted[$cnt]};cnt=`expr $cnt - 1`;donetime=`date '+%Y-%m-%d %H:%M:%S'`;echo $time;file="$config_path/dcmd_util.config";echo $file;dev_id=`cat $file|head -n 1|awk -F: '{print $2}'`;name=`cat $file|head -n 2|tail -n 1|awk -F: '{print $2}'`;user=`cat $file|head -n 3|tail -n 1|awk -F: '{print $2}'`;passwd=`cat $file|head -n 4|tail -n 1|awk -F: '{print $2}'`;collector_id=`cat $file|head -n 5|tail -n 1|awk -F: '{print $2}'`;file="$config_path/dcmd_util.sql";echo >$file;echo "insert into CFG_SAFE_HOST ( COLTIME, HOSTPRO_CPU,HOSTPRO_MEM,mem_total,mem_used,server_ip) ">> $file;echo "values ( to_date('$time','yyyy-mm-dd hh24:mi:ss'), '$cpu_util','$mem_util','$mem_size','$mem_use','$dev_id');">>$file;cnt=`df -g|wc -l`;while [ $cnt -gt 1 ]doecho "insert into CFG_SAFE_DISKINFO(COLTIME,DISK_UTIL, FILE_SYSTEM,GEN_SIZE,RELATE_DIR,server_id,server_ip,USE_SIZE)">> $file;echo "values ( to_date('$time','yyyy-mm-dd hh24:mi:ss'),'${use[$cnt]}','${filesystem[$cnt]}','${size[$cnt]}','${mounted[$cnt]}','$collector_ id','$dev_id','${used[$cnt]}'); ">> $file;cnt=`expr $cnt - 1`;doneecho "commit;" >> $file;echo "su - oracle -c \"sqlplus $user/$passwd@$name <$config_path/dcmd_util.sql\" ";su - oracle -c "sqlplus $user/$passwd@$name <$config_path/dcmd_util.sql";。