#!/bin/sh
#数据库备份文件所在路径
db_dir=/backup/oracle/rman/dbf
archive_dir=/backup/oracle/rman/archivelog
#临时目录,用于上传所找出的文件
db_tmp_dir=/backup/oracle/rman/dbftmp
archive_tmp_dir=/backup/oracle/rman/archivelogtmp
#找出最新的数据库备份文件
df_put_files=`find /backup/oracle/rman/dbf/* -mtime 0`
archive_put_files=`find /backup/oracle/rman/archivelog/* -mtime 0`
#找出旧的数据库备份文件
old_files=`find /backup/oracle/rman/dbf/* -mtime +1`
old_archive_files=`find /backup/oracle/rman/archivelog/* -mtime +1`
#上传文件的日志文件
ftp_db_log=/backup/oracle/rman/ftp_log
#ftp info#
HOST="90.48.0.22"
USER="text"
PASSWD="udb_2014"
#defined ftp
ftp_dbbk()
{
echo "
open $HOST
user $USER $PASSWD
binary
lcd $put_tmp_dir/
prompt
mput ./*
close
bye
"|ftp -nv |tee /backup/oracle/rman/ftp_err_log >/dev/null
}
case "$1" in
db.rcv)
put_tmp_dir=$db_tmp_dir
#创建用于上传的临时目录
mkdir -p $put_tmp_dir
#把找出的最新文件移动到临时目录
for i in $df_put_files
do
mv $i $put_tmp_dir/
done
ftp_dbbk
err_msg=`grep "226 File receive OK" /backup/oracle/rman/ftp_err_log |wc -l`
if [ $err_msg -ne 0 ];then #判断是否上传成功
echo "$(date +%Y-%m-%d" "%H:%M:%S):Ftp mput db_files successed!" >>/backup/oracle/rman/ftp_log
echo "------------------------------------------------------" >>/backup/oracle/rman/ftp_log
mv $put_tmp_dir/* $db_dir/ #把上传完成后的文件从临时目录移回数据库备份目录下
exit 0
else
echo "$(date +%Y-%m-%d" "%H:%M:%S):Ftp mput db_files failed!" >>/backup/oracle/rman/ftp_log
echo "-------------------failed----------------------------" >>/backup/oracle/rman/ftp_log
cat /backup/oracle/rman/ftp_err_log >>/backup/oracle/rman/ftp_log
echo "-------------------failed----------------------------" >>/backup/oracle/rman/ftp_log
exit 2
fi
;;
archive.rcv)
put_tmp_dir=$archive_tmp_dir
#创建用于上传的临时目录
mkdir -p $put_tmp_dir
#把找出的最新文件移动到临时目录
for i in $archive_put_files
do
mv $i $put_tmp_dir/
done
ftp_dbbk
err_msg=`grep "226 File receive OK" /backup/oracle/rman/ftp_err_log |wc -l`
if [ $err_msg -ne 0 ];then #判断是否上传成功
echo "$(date +%Y-%m-%d" "%H:%M:%S):Ftp mput archive_files successed!" >>/backup/oracle/rman/ftp_log
echo "------------------------------------------------------" >>/backup/oracle/rman/ftp_log
mv $put_tmp_dir/* $archive_dir/ #把上传完成后的文件从临时目录移回数据库备份目录下
exit 0
else
echo "$(date +%Y-%m-%d" "%H:%M:%S):Ftp mput archive_files failed!" >>/backup/oracle/rman/ftp_log
echo "-------------------failed----------------------------" >>/backup/oracle/rman/ftp_log
cat /backup/oracle/rman/ftp_err_log >>/backup/oracle/rman/ftp_log
echo "-------------------failed----------------------------" >>/backup/oracle/rman/ftp_log
exit 2
fi
;;
*)
echo "usage: $0 (db.rcv|archive.rcv)"
esac
shell自动上传多份备份文件到FTP服务器
原创
©著作权归作者所有:来自51CTO博客作者lyitt1987的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:Linux UDP端口检测命令
下一篇:shell 密码过期检测脚本
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
上传本地文件至GitHub
一定要注意将公钥放置到GitHub才能上传成功!
上传 GitHub 秘钥 -
Secure CRT 本地文件上传至远程服务器
本文将介绍如何使用secure crt 将本地文件上传至虚拟机或远程linux 服务器(即下文所讲的远程端),这仅是本人平常喜欢使用的一种方式。用secure crt 连接、登录虚拟机鼠标右键,
secure crt 文件上传 linux 本地文件上传 上传 jar包 目标目录 -
上传本地文件到服务器docker 如何上传文件到docker
目录1、基于已有镜像构建镜像并上传到DockerHub1.1更改已安装的镜像容器1.2 基于上述容器重新创建镜像1.3 上传镜像到DockerHub仓库2、使用Dockerfile构建JDK+tomcat镜像2.1 准备好jdk和tomcat安装包等文件2.2 编写Dockerfile文件2.3 设置Dockerfile权限2.4 执行 docke
上传本地文件到服务器docker 基于已有镜像构建镜像 Dockerfile构建镜像 镜像上传DockerHub仓库 Dockerfile参考示例