这个脚本是获取目标机器的db信息和os信息的。os信息很好获取,db的信息包含db名字,db版本以及所有的db instance,db信息的获取稍显复杂,下面是整个脚本代码:

关键字: awk, sed, grep, $, test -z, ftp, 以及重定向>,>>

#!/bin/sh

name=$(uname -s -n | awk '{{print $2}')
ip=$(ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{{print $2}'|tr -d 'addr:' )
os=$(uname -s -n | awk '{{print $1}' )

dbinstpath=$(find /opt -name db2ilist|grep 'inst'|sed -n '1,1p')
#dbid=$($dbinstpath|sed -n '1,1p')

if test -z "$dbinstpath"  //判断dbinstpath变量是否为空
then
    comm="no db2ilist on target computer"
    osdbinfo=$name","$ip","$os","null","null","null","$comm"\n"$osdbinfo
else
    dbinst=$($dbinstpath)
    if test -z "$dbinst"
    then
        echo "there is no any db instance on that server, so can not retrieve db info" > getDBinfo.log 2>&1
    else
        for i in $dbinst
            do
                cmp=$(su - $i|grep "Unable to change directory")
                if test -z "$cmp"
                then
                    dbver=$(su - $i -c db2level | grep 'DB2 v' | awk '{{print $5}'| tr -d '"|,' )
                    dbname=$(su - $i -c db2 list db directory | grep 'Database name' | awk '{{print $4}' )
                    comm="_"
                else
                    comm="can not change to directory for db instance:"$i
                    dbver="null"
                    dbname="null"        
                fi
                osdbinfo=$name","$ip","$os","$dbver","$dbname","$i","$comm"\n"$osdbinfo
            done
    fi
fi

csvtitle='0os_name, 0os_ip, 0os, 0db_version, 0db_name, 0db_inst'
echo $csvtitle"\n"$osdbinfo > db2info.csv 2>&1

//ftp下载
ftpsvr="9.84.194.234"
ftp -i -v -n <<eof
open $ftpsvr
user ken 123456    
lcd /tmp  
get "db2info.csv" "db2info.txt"
bye
eof

cd /tmp  
chmod u+rwx db2info.txt  //修改文件权限
echo $osdbinfo>>db2info.txt 2>&1
sort -u db2info.txt -o db2info.txt  //排序
sed '/^$/d' db2info.txt>db2info_.txt  //删除空白行

//ftp上传文件
ftp -i -v -n <<eos
open $ftpsvr
user ken 123456    
put db2info_.txt db2info.csv
bye
eos

rm db2info_.txt

shell获取db信息及上传下载操作的更多相关文章

  1. Java实现对文件的上传下载操作

    通过servlet,实现对文件的上传功能 1.首先创建一个上传UploadHandleServlet ,代码如下: package me.gacl.web.controller; import jav ...

  2. 安卓获取软硬件信息并上传给server(Socket实现)

    首先,项目结构如图--A:分为client部分CheckInfo和server端CheckInfo_Server.CheckInfo获取手机信息(Mac,Cpu,内存,已安装软件信息等)并上传到ser ...

  3. NuGet 本地服务器 公司组件库搭建 上传下载操作 模块化灵活设计

    新年第一更,关于如何搭建NuGet的本地服务器,以及部署IIS,以此搭建公司自己的组件仓库,方便所有的组件更新,管理,测试等等操作. 关于如何在NuGet中下载指定的组件,参考这篇文章:http:// ...

  4. 2019-03-28 git github SSH配置,上传下载操作

    1.通过git获取scrapy源码,并安装到系统里面 https://git-scm.com/download/win 下载无脑安装啊(C:\Program Files\Git),进入git bash ...

  5. linux链接及文件互相上传下载

    若排版紊乱可查看我的个人博客原文地址 基本操作 本篇博客主要介绍如何去链接远程的linux主机及如何实现本地与远程主机之间文件的上传下载操作,下面的linux系统是CentOS6.6 链接远程linu ...

  6. Gin-Go学习笔记四:Gin-Web框架 文件的上传下载

    文件的上传和下载 1->文件的上传 文件的上传,采用的是uploadify.js这个插件. 本事例实现的是上传图片文件,其他的文件上传也一样. 2->文件的下载 文件的下载有两个实现的方式 ...

  7. pycharm+gitee【代码上传下载】实战(windows详细版)

    pycharm+gitee环境搭建好以后应该如何进行代码上传下载操作呢?举几个例子,此文会一直更新 环境:2019社区版pycharm+gitee+git 系统:windows系统 一.代码上传功能 ...

  8. python_登陆验证文件上传下载_socket

    client.py import os import sys import json import struct import socket # 下载--接收文件 def download(sk): ...

  9. Shell获取Aix/linux/unix机器上db2和os的信息并上传到指定服务器

    (之前写过一篇类似的文章,当时传输文件用的是ftp,因为项目觉得ftp不够安全所以这次换成了scp,同时对脚本的一些地方也做了一些调整) 其实做这个东西还是因为项目的需求,需要获取某些机器(目前主要是 ...

随机推荐

  1. 通过android.provider包查看android系统定义的provider.

    原先的2.2的android源码已经不是那么容易找到了,我稍稍搜索了下找到了一两个没速度的死链就失去了兴趣.不过还好忽然发现在android.provider包下包含了常见的provider的使用方法 ...

  2. XCODE7新变化之-test

    Xcode 7新鲜出炉,一大早下载下来就安装上了,急急地体验一把.这几天公司给的任务是单元测试,那我们一起来用新版本做一次测试吧. 除了官方发布的下载链接地址,分享本人的xcode 7下载地址,大家不 ...

  3. 1044: [HAOI2008]木棍分割 - BZOJ

    Description 有n根木棍, 第i根木棍的长度为Li,n根木棍依次连结了一起, 总共有n-1个连接处. 现在允许你最多砍断m个连接处, 砍完后n根木棍被分成了很多段,要求满足总长度最大的一段长 ...

  4. linux 下安装JDK1.7

    安装JDK1.7 1. 打开网址http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u5-downloads-1591156.ht ...

  5. 团体程序设计天梯赛-练习集L2-009. 抢红包

    L2-009. 抢红包 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 没有人没抢过红包吧…… 这里给出N个人之间互相发红包.抢 ...

  6. hdu 4454 Stealing a Cake 三分法

    很容易想到三分法求解,不过要分别在0-pi,pi-2pi进行三分. 另外也可以直接暴力枚举…… 代码如下: #include<iostream> #include<stdio.h&g ...

  7. poj 2454 Jersey Politics 随机化

    随机化算法+贪心! 将3*k排序后分成3分,将第二第三份的和分别加起来,让和与500*k比较,都大于则输出,否则,随机生成2个数,在第二第三份中交换! 代码如下: #include<iostre ...

  8. Google chrome的字体设置

    http://blog.sina.com.cn/s/blog_a3b863da01016sv3.html 谷歌浏览器(Google chrome)速度很快,很好用.问题是字体显示有时候不对:用英文版的 ...

  9. php关于private、public成员变量访问问题

    如果类里面定义了__get($name)方法,则不论类的private成员还是public成员,都能够在类的外面通过类似$class->name访问到.如果是public变量,则不会自动调用ge ...

  10. CKEditor在线编辑器增加一个自定义插件

    CKEditor是一个非常优秀的在线编辑器,它的前身就是FCKEditor,CKEditor据官方说是重写了内核的,但功能和性能比FCKEditor更为强大和优越.记得07年的时候第一次接触FCKEd ...