shell脚本笔记(原创不断记录)
今天开始自己的shell脚本练习,刚好公司有太服务器,要时间对数据的cp是按月的:
考虑:首先寻找规律,发现都放置在/opt/www/aaa/ 里面有很多的2级和3级目录和文件,但我追踪要备份的是年月为文件名的格式:2015_06
这样的格式,首先我们不清楚这个目录下有多少这样的2015_06的子目录所以需要统计:
find /opt/www/aaa -name 2015_06 查看了下我要备份的地方#!/bi#admin fengtaotao Email:@qq.com
- #Fri Jul :: CST 2015
- pathh=/opt/www/acc/musicFile/ @首先定义的是源文件路径
- pathd=/opt2/musicFile/ @要备份到的路径
- datem=`date +%m` @这里我定义一个当前月的显示 原因是我在crontab中是要备份的是上个月的
- #getMonth @简单的注释 我喜欢吧注释写在行代码下面
- if [ "$datem" == 01 ];then @当前月是1月份那么当前年-1从而备份去年的12月份
datem="_12" @如果 当前月是1月份 那么僵变量修改为12月份
datey=`date +%Y`
datey=$(($datey-1)) @将年份改为去年 这样就是去年的12月份
else
datem="_0$(($datem-1))"- datey=`date +%Y` @考虑到每年的1月份要备份去年的
- fi
#getFullYear- dird="$datey$datem"
- #echo "$dird"
- readd=`date +%N`.txt
- find $pathh -name $dird &>> $readd
- for i in $(cat $readd);do
- aac=$(echo $i | awk -F "/" '{print $6"/"$7"/"}')
- aac=${pathd}${aac}
- cp -r $i $aac &>> dbcp.log
- done
- rm -rf $readd
OK 接下来修改下权限和crontab 的定时
- chmod u+x dbback.sh
- crontab -e
- * * /root/bash/dbback.sh
- 没个月的1号 凌晨1点整开始备份
2.当然我也写了一个手动备份的脚本
- #!/bin/bash
- #admin fengtaotao Email:@qq.com
- #Fri Jul :: CST
- pathh=/opt/www/acce/musicFile/
- pathd=/opt2/musicFile/
- touch ulist.txt
- readd=ulist.txt
- for a in $(cat list.txt);do
- find $pathh -name $a &>> $readd
- done
- for i in $(cat $readd);do
- aac=$(echo $i | awk -F "/" '{print $6"/"$7"/"}')
- aac=${pathd}${aac}
- cp -r $i $aac &>>dbcp.log
- done
- rm -rf $readd
这个我们可以再脚本的同目录下 创建一个list.txt文档,在里面写入我们需要备份的名称列表默认是换行为一个名称
shell脚本笔记(原创不断记录)的更多相关文章
- Shell脚本笔记
如何查询文件里的某个字符串? grep “字符串” 文件 例:grep "abc" tmp.txt 如何将查询出来的内容赋给变量? str=$(grep "abc ...
- Shell脚本笔记(七)控制Shell脚本
控制Shell脚本 一.处理信号 1) SIGHUP本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端不再关联. ...
- Shell脚本笔记(一)一些零碎的基础知识
一些零碎的基础知识 一.认识Shell脚本 一)相关概念 Shell是一种命令解释器,作用是按次序执行(遇到子脚本,先执行子脚本的命令)用户输入的命令和程序. Shell脚本语言是弱类型语言,与其他脚 ...
- Shell脚本笔记(二)Shell变量
Shell变量 一)全局环境变量 全局变量对于定义它的shell和其子shell都是可见的,但如果生成它的shell被终止,全局变量也就消失了.另外全局变量会被子shell的同名变量覆盖. #定义一个 ...
- Shell脚本笔记 1
函数别名 设置别名 alias name="command" alias ll="ls -laS" 取消别名 unalias name 求取数学表达式 valu ...
- Linux shell脚本笔记
shell 命令解释器 是用来解释用户对系统的操作 使用 cat /etc/shells 可以查看 系统安装的shell Linux 启动过程: BIOS -> MBR -> BootLo ...
- Shell脚本笔记(六)呈现数据
呈现数据 一.文件描述符 Linux系统将每个对象当做文件处理,这包括输入和输出进程.Linux用文件描述符来标识每个文件对象.每个进程最多可以有9个 文件描述符,bash shell保留了前三个文件 ...
- 学习shell脚本笔记
1.if 是单分支语句,使用格式如下: if condition ; then statement ….. fi 2.if … else 是双分支语句,使用格式如下: if condition ; t ...
- Shell脚本笔记(三)shell中的数学计算
shell中的数学计算 一.使用方括号 #!/bin/bash a= b= c= res=$[$a * ($c-$b)] echo $res 二.使用(()) +)) ((i=+)) b=$((-*) ...
随机推荐
- 【bzoj1178】 Apio2009—CONVENTION会议中心
http://www.lydsy.com/JudgeOnline/problem.php?id=1178 (题目链接) 题意 给出n个区间,问在区间两两不相交的情况下最多能选出多少区间,并输出字典序最 ...
- 数据结构(DataStructure)与算法(Algorithm)、STL应用
catalogue . 引论 . 数据结构的概念 . 逻辑结构实例 2.1 堆栈 2.2 队列 2.3 树形结构 二叉树 . 物理结构实例 3.1 链表 单向线性链表 单向循环链表 双向线性链表 双向 ...
- 添加一个功能Action
1,只用一个handler类,所有都事件的处理器都在一个handler类 handler要创建以Action为名称的方法 event要单独分开,继承KDEvent package com.kingde ...
- 常用RSS订阅地址
随着Google Reader关门大吉,转战鲜果网了,RSS订阅地址经过几次折腾,丢的没剩几个了,写个文章记录一下吧,随时补充. --PS-- ,微信.微博之类的是社交平台,不能很好的梳理知识,一直用 ...
- Java Servlet完全教程
Servlet 是一些遵从Java Servlet API的Java类,这些Java类可以响应请求.尽管Servlet可以响应任意类型的请求,但是它们使用最广泛的是响应web方面的请求. Servle ...
- 【项目】iOS - 使用UIWebView占用内存过大
通过其他博主介绍的解决这个问题的博客: http://blog.techno-barje.fr//post/2010/10/04/UIWebView-secrets-part1-memory-leak ...
- Linux安全之——Ubuntu的iptable命令使用
设置开机自动启动iptables # sysv-rc-conf --level 2345 iptables on 列出当前iptables的策略和规则 # iptables -L -n 允许已经建立的 ...
- split shell tools
split [-bl] file [prefix] 参数说明: -b, --bytes=SIZE:对file进行切分,每个小文件大小为SIZE.可以指定单位b,k,m. -l, --lines=NUM ...
- spring boot properties
[转载] 代码从开发到测试要经过各种环境,开发环境,测试环境,demo环境,线上环境,各种环境的配置都不一样,同时要方便各种角色如运维,接口测试, 功能测试,全链路测试的配置,hardcode 肯定不 ...
- idea community 配置已有的scala工程