一天一脚本--之一

脚本需求:

公司有台oracle数据库,使用oracle自带的rman执行数据库备份,备份文件都存放在本地目录/u01/rmanbk,毕竟备份在本机是不安全的,哪天服务器挂掉,备份文件也会丢失,恢复数据基本不可能了。怎么办呢?备份到异地。公司有另一台windows server 2008的共享服务器,建了一个共享目录,用于存放oracle备份文件。

脚本实现:

大概的思路:通过在oracle数据库系统上面挂载windows 2008的共享目录至本地目录,然后把本地/u01/rmanbk目录下的文件copy至本地目录,每天凌晨5点执行,最后删除30天内未修改过的数据文件,仅保持30天内的备份文件。

脚本文件ccdb_rsync.sh

#!/bin/bash    
if [ ! -d /ccdb ]; then      
        mkdir /ccdb      
fi

if  ! mount | grep ccdb > /dev/null; then    
        mount -t cifs //192.168.57.39/ccdb_backup /ccdb -o username=ccdb_backup,password="123456",rw      
fi

for fileName in /u01/rmanbk/*; do    
        baseName=`basename $fileName`      
        if [ ! -e /ccdb/$baseName ]; then      
                cp -a /u01/rmanbk/$baseName /ccdb/$baseName      
        fi      
done

find /ccdb/* ! -mtime -30 -exec rm -rf {} \;

# crontab -l  
0 5 * * *  bash /root/ccdb_rsync.sh

时间: 2024-10-14 13:33:05

一天一脚本--之一的相关文章

一天一脚本--之三(修改文件名)

脚本需求: 今天同事给了一个文件,文件名为"web-2014-06-18-10:00:55.tar.gz",用tar xf  web-2014-06-18-10:00:55.tar.gz 解压会报错: [[email protected] tmp]# tar xvf web-2014-08-28-10\:00\:55.tar.gz tar: Cannot connect to web-2014-08-28-10: resolve failed 脚本实现: 思路:想想就是因为文件名中有字

一天一脚本--之二

脚本需求: 公司有台mysql数据库,每天会从一ftp服务器上下载*.dat文件,然后通过mysql把.dat文件导入数据库,在导入数据库之前需要判断数据库表中是否存在此记录,如果无此记录,则导入:如果已有些记录,则不导入. 脚本实现: 大概思路:通过mysql -e命令查询表中的记录中的特定列Guild_ID(唯一值),然后重定向到table.in文件中,通过for 循环遍历写到列表l中: 通过读取crm.dat文件,同样通过for循环把文件中的第一条记录读取到列表record中,对比reco

Oracle 11g R2 RAC RMAN备份脚本示例

一.将RAC切换成归档模式 1. 修改数据库的归档模式,通常在安装RAC的时候都会配置归档并且使用闪回区,已经配置过归档下面的方式可以略过. SQL> alter system set cluster_database=false scope=spfile sid='*'; 2. 关闭所有实例(两边都要shutdown) SQL> shutdown immediate 或直接关闭所有实例   $ srvctl stop database -d orcl 3. 在任意一个实例上将数据库启动到mo

mysql mysqldum备份脚本

本篇文章主要讲如何使用shell实现mysql全量,增量备份.增量备份在周一-周六凌晨3点,会复制mysql-bin.00000*到指定目录:而全量备份则使用mysqldump将所有的数据库导出,每周日凌晨3点执,并会删除上周留下的mysq-bin.00000*.然后对mysql的备份操作会保留在bak.log文件中.如下图: 开始:2013年05月02日 15:10:57 结束:2013年05月02日 15:12:16 20130502.sql.tgz succ是由DBFullyBak.sh产

管理员shell脚本

Technorati 标记: shell,df,sed,awk -监视系统统计信息 监视磁盘空闲空间 磁盘资源占用情况 监视CPU和内存使用情况 -执行备份 归档数据文件 脱机存储备份文件 监视系统统计信息 · 监视磁盘空闲空间 此shell脚本将监视特定卷上(如/)的可用磁盘空间,并在可用磁盘空间低于设置的阈值时发送一则电子邮件信息. #!/bin/bash # monitor available disk space #注意格式 变量=`值` SPACE=`df|sed -n '/\/$/p

一天一命令-sed

一天一命令-sed sed - stream editor for filtering and transforming text sed 4.2.2 sed是一种流编辑器,读取一行,处理一行,输出一行.sed先读取文件中的一行内容存储到被称为模式空间(pattern space)的临时缓冲区中,接着根据设定的条件来处理缓冲区中的内容,多个条件则多次处理,处理完成后,输出到屏幕,接着读取和处理下一行.源文件内容并没有改变,除非使用重定向存储输出.Sed主要用来自动编辑一个或多个文件:简化对多个文

一天一命令-history

一天一命令-history 系统软硬件环境平台: VMware Workstation Pro 12.5.5 build-5234757 CentOS Linux release 7.3.1611 软件版本:bash --version GNU bash, version 4.2.46(1)-release (x86_64-redhat-linux-gnu) 测试时间:2017年5月29日 history-Display or manipulate the history list.(显示或者处

Windows下MySQL自动备份的batch脚本

在Unix系统环境中可以通过各种Unix shell结合cron任务实现对MySQL的自动备份,那在Windows下要如何实现呢,其实很简单只要写好自定义的batch脚本在结合taskschd.msc(任务计划程序),就可以实现,最近需要修改调优Windows环境下的MySQL就顺便写了一个使用mysqldump做逻辑备份的batch脚本,如下: @echo off ::mysql_backup.bat set hour=%time:~0,2% if "%time:~0,1%"==&q

调整ATS日志处理机制及相关脚本

在ATS的尝试使用中,日志处理是很重要的一环,我在研究这个时候花了不少精力,首先我们测试用的ATS是5.3.2版本,默认打印的是二进制日志squid.blog,一天一切割,当然也可以变为文本日志,不过ATS自带的很牛逼的分析traffic_logstats就用不了了,怎么办呢?苦思冥想,最后想了个好办法,打两套日志,文本日志存档,供我们看,二进制日志一天一删除,哈哈,问题圆满解决.为了迎合线上的访问量,日志设置为了5分钟一切割,切割后改名归档,同时又为了缩小存储空间,定义凌晨3点(访问量小)开始