unix环境下常用工作脚本大全.doc_第1页
unix环境下常用工作脚本大全.doc_第2页
unix环境下常用工作脚本大全.doc_第3页
unix环境下常用工作脚本大全.doc_第4页
unix环境下常用工作脚本大全.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

工作中常用的脚本Lyman Van原创 (mail:)1,备份脚本:主要是date的格式化,以及常用的cp拷贝。#!/usr/bin/shbak_date=$(date +%Y%m%d)echo =vanips bak date is $bak_date=echo +bak vanips is start.+#ll /test2/vanips/bak/;rm -rf /test2/vanips/bak/vanips.bak.$bak_datemkdir -p /test2/vanips/bak/vanips.bak.$bak_dateecho =copy vanips_run is start.=mkdir -p /test2/vanips/bak/vanips.bak.$bak_date/vanips_runecho =copy vanips_run is ok=cd /test2/vanips/bak/vanips.bak.$bak_date;touch 这是备份文件echo +bak vanips is end+2,ftp文件传输ftp -n VAN #这个是分段符号 open $IP #远程主机的ip地址 user $v_username $v_username #远程主机的用户名和密码 bin# 以二进制传输 prompt # 关闭对话框 lcd $v_localpath #本地目录 cd $v_remotepath # 远程主机目录 mput $v_resname # 需要传输的文件名称 byeVAN3,远程登陆主要用expect脚本来实现交互,下面两个脚本分别实现了rlogin 远程登陆 和ssh远程登陆#!/home/bin/expectset v_host lindex $argv 0set v_username lindex $argv 1set v_password lindex $argv 2set v_command1 lindex $argv 3#延时1s执行以下命令set timeout 1spawn rlogin $v_hostexpect Password: exec sleep 1send $v_passwordsend rexpect *$v_username%exec sleep 1send $v_command1send rset timeout 300expect *$v_username%#!/test1/release/expect/bin/expect# useage : ssh_host_exec_command host_ip user password system_name host_index command set v_hostip lindex $argv 0set v_username lindex $argv 1set v_password lindex $argv 2set v_systemname lindex $argv 3set v_hostindex lindex $argv 4set v_command lindex $argv 5#延时4s执行以下命令set timeout 4spawn ssh -l $v_username $v_hostipexpect *assword:exec sleep 1send $v_passwordsend rexpect *UserName):exec sleep 1send $v_systemnamesend rexpect *Hostname):exec sleep 1send $v_hostindexsend r expect *$v_systemname%exec sleep 1send $v_commandsend r4,用户界面简单的echo实现打印user_interface() echo n * echo * 请选择序号或名称: * echo * t 1: vanbps * echo * t 2: vancbs * echo * t 3: ccsuser * echo * t 4: vanips * echo * t 5: vanupintf * echo * t 6: mutil_user * echo * t 0: exit * echo *n5,用户问答式交互echo n=是否继续?(y/n):c=read ANScase $ANS in y|Y|yes|YES|Yes) do_deploy;*)echo 取消!;esac6,数据库操作用sqlplus实现# get_obj_detvanl object_name : 获取。等信息并保存get_obj_detvanl()v_obj_name=$1;v_code_list=/test /util/release/testcd $HOME/release/ ;rm obj_info.lst ;sqlplus attttttt/aaaaaaatestdb test.obj上述命令去掉test.txt文件中重复的行和空行($),以及以#字符开头的行,并且按照字母顺序排序。 test.obj 为整理后的文本cat a.list |egrep mh|yy|cb|cx|dc|cz|bt code_list这个命令从文本a.list中获取以mh yy cb cx dc cz bt这些开头的行,并保存到code_list文件中c,文本替换sed s/webapp/prjVanbps/src/vanbps/WEB-INF/classes/w out.lst update.txt这个命令将update.txt文件中所有以webapp/prjVanbps/src 开始的行替换成以 vanbps/WEB-INF/classes开头的行,并保存到out.lst文件中注意转移字符“”的用法sed s/.java/*.class/g test.lsttest.do这个命令将test.lst文件中所有以.java结尾的行替换成以.class结尾的行并将结果保存到test.do文件中8,进程a,手动强制kill掉某个进程,以java进程为例#!/bin/shi=ps -ef|grep java |grep -v grep|awk print $2|wc -lif $i -eq 0 then echo process is not found!else ps -exf|grep java | grep 用户名称|grep -v grep|grep 实例名称|grep 关键字|awk print $2|xargs kill -9 echo kill success sleep 3fib,进程检查while read LINEdo v_svrname=echo $LINE | awk print $1 v_cfgname=echo $LINE | awk print $2 v_command=echo $LINE | awk print $3 v_config=1 run_svrcount=ps -x -u 用户名 | grep $v_svrname | grep $v_cfgname | grep -v grep | grep -v tvanl | wc -l if $run_svrcount -ge $v_config then v_pid=ps -x -u cboss | grep $v_svrname | grep $v_cfgname | grep -v grep | grep -v tvanl | awk print $1 echo $v_pid $v_svrname -$v_cfgname is Running. Current: $run_svrcount = Conf: $v_config else echo ERROR : $v_svrname -$v_cfgname is NOT running ! Use $v_command & to start it fidone test.shcat test.shecho =Are you sure to clear all ipcs ?(y/n):cread ANScase $ANS in y|Y|yes|Yes|YES) sh test.sh rm test.sh ; *) echo ipcs NOT cleared ,bye ! exit ;esacTCL/TK 和 Expect 编译与安装 1,获取原始的tcl源码包和expect源码包,名称根据版本不同而有所区别。我的分别是tcl8.4.14.tar 和 expect-5.43.tar。下载Expect的地址:/src/ 下载TCL/TK的地址: http:/www.tcl.tk/software/tcltk/downloadnow84.tml /download/0001000/22.shtml需要注意的是不能直接拷贝编译过的源代码目录,否则好像会编译出错。在我的实际工作经验中曾经这么做:在型号为9000/800/SD32A 的hp-unix主机上拷贝了这两个目录到型号为ia64 hp superdome server SD32B的hp-unix主机上,结果编译的时候提示 socklen_t 和 fd_mask 这两个变量分别与/usr/include/sys/socket.h 和 /usr/include/sys/types.h文件里的重定义了。 2,编译expect工具之前,需要先编译tcl的动态库。解压源码包,tar -xvf tcl8.4.14.tar; 切换到解压之后的tcl源代码路径,该目录下根据不同的操作系统有不同的编译路径,支持mac, win ,unix。由于我的是hp-unix,所以我进入tcl8.4.14/unix目录,运行configure工具,./configure -prefix=Install dir(安装目录)。 这里prefix=指定了tcl下一步的安装目录。 3,配置脚本执行之后将会产生Makefile文件,这时候只需gmake 即可, gmake install可以完成安装。(如果操作系统不支持gmake,可以make代替) 4,到安装目录,可以检查tcl编译是否安装正确。本软件包自带测试套件,能执行一些测试,以确定它是否编译正确。如果你想运行测试套件,执行下面的命令: TZ=UTC make test 5,编译expect工具。解压源码包: tar -xvf expect-5.43.tar,进入解压之后的expect源代码路径,运行配置命令:./configure -prefix=/app/expect -with-tcl=/app/expect/lib -with-x=no -with-tclinclude=/app/util/tcl8.4.14/generic 配置参数的意思是:-prefix=/app/expect 安装目录,同tcl的编译 -with-tcl=/app/expect/lib: 确保配置脚本找到临时工具目录中的Tcl,我们不希望它使用主系统中可能存在的tcl. 一般使用上一步tcl编译之后的安装目录下的lib路径 -with-x=no: 告诉配置脚本,不要查找 Tk (Tcl 的 GUI 组件) 或 X 窗口系统库,这两个都有可能存在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论