hb120973135 发表于 2015-5-27 09:06:03

【应用】:shell crontab定时生成oracle表的数据到txt文件,并上传到ftp

  一、本人环境描述
      1、oracle服务端装在win7 32位上,oracle版本为10.2.0.1.0
      2、Linux为centos6.5 32位,安装在Oracle VM VirtualBox虚拟机上
      3、win7上装有ftp服务
  二、功能实现描述
      用shell的crontab命令定时执行某个.sh文件,此文件的功能已实现生成oracle表的数据到本地txt文件,并上传到ftp,必要时可记录执行日志。
  三、步骤
      1、在centos中安装oracle客户端并配置环境变量
  
      2、在centos中安装ftp客户端
  
      3、编写shell,实现查询oracle数据库表,并写到本地txt文件
  
      4、编写shell,实现上传文件到ftp
  
      5、修改shell,打印执行日志
        打印日志函数如下:    





function loginfo {
time_flag=`date +"%Y-%m-%d %H:%M:%S"`
echo "[${time_flag}] -- $1"
}
View Code  
  6、所有shell代码
  数据表结构见【编写shell,实现查询oracle数据库表,并写到本地txt文件】
  A、把打印日志函数封装成testLog.sh,代码如下:





#!/bin/bash
######################################################################################
#功能:定义日志打印函数
#用法:loginfo “日志内容”
#版本:0.1      #作者:crazyMyWay      #日期:
#说明:建立初版
######################################################################################
function loginfo {
time_flag=`date +"%Y-%m-%d %H:%M:%S"`
echo "[${time_flag}] -- $1"
}
View Code  
  B、通过ftp上传文件代码封装成testFtptool.sh,如下:





#!/bin/bash
######################################################################################
#功能:ftp上传/下载文件
#用法:第一个参数put(上传)还是get(下载)文件,第二个参数为FTP服务器IP,第三、四个参数分别是用户名和密码
#      第五个参数是FTP上的工作目录,第六个是本地的目录,第七个是操作的文件名
#例子:testFtptool.sh put|get ip_address ftp_user ftp_password ftp_dir local_dir filename
#版本:0.1    #作者:crazyMyWay   #日期:
#说明:建立初版
######################################################################################
E_NOTROOT=67
#输出帮助信息,用法:./testFtptool.sh -h
if [ $# -eq 1 -a "$1" = "-h" ]
then
echo "Usage: $0 put|get ip_address ftp_user ftp_password ftp_dir local_dir filename"
echo "Example:
$0 put|get ftp服务ip ftp用户名 ftp密码 ftp目录 本地目录 文件名"
exit $E_NOTROOT
fi
#如果参数不等于7
if [ $# != 7 ]
then
echo "Param error: Usage: $0 put|get ip_address ftp_user ftp_password ftp_dir local_dir filename"
exit $E_NOTROOT
fi
#进行ftp操作,ftp命令解释请查阅相关资料
ftp -v -n
页: [1]
查看完整版本: 【应用】:shell crontab定时生成oracle表的数据到txt文件,并上传到ftp