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=$((-*) ...
随机推荐
- [poj2406] Power Strings
Description 对于两个字符串a,b,定义a×b为将b接到a的末尾组成新的字符串.对于一个字符串a的幂运算的定义与我们在数学中的定义一样:a0=''(空字符),an+1=an×a. Input ...
- 【poj1160】 Post Office
http://poj.org/problem?id=1160 (题目链接) 题意 按照递增顺序给出一条直线上坐标互不相同的n个村庄,要求从中选择p个村庄建立邮局,每个村庄使用离它最近的那个邮局,使得所 ...
- Android成长日记-ProgressBar的设计
ProgressBar的关键属性 Android:max=”100” - ---最大显示进度 Android:progress=”50”----第一显示进度 Android:secondaryProg ...
- CSS 公共样式分享
global.css | reset.css(格式化样式) common.css(公共组件样式) layout.css(当前页面样式) 清除全站所有页面的浏览器默认样式,保证在初始样式在所有浏览器下一 ...
- HTML5系列二(标签元素、FileReader、拖放)
nav元素的使用场合 页面中可以包含多个nav元素,通常情况下头部和尾部都会包含导航,这样提高了可访问性,访客能够清晰的将其辨认出来.nav元素是一个可以用来作为页面导航的链接组:其中的导航元素链接到 ...
- mybatis 传递参数的方法总结
有三种mybatis传递参数的方式: 第一种 mybatis传入参数是有序号的,可以直接用序号取得参数 User selectUser(String name,String area); 可以在xml ...
- MyEclipse快捷键大全(绝对全)
存盘 Ctrl+s(肯定知道) 注释代码 Ctrl+/ 取消注释 Ctrl+\(Eclipse3已经都合并到Ctrl+/了) 代码辅助 Alt+/ 快速修复 Ctrl+1 代码格式化 Ctrl+Shi ...
- Unity Sprite Atlas Compression
http://forum.unity3d.com/threads/2d-sprite-packer-and-pvrtc.218633/ http://docs.unity3d.com/Manual/S ...
- FBX
http://docs.autodesk.com/FBX/2014/ENU/FBX-SDK-Documentation/index.html http://forums.autodesk.com/t5 ...
- curl毫秒超时使用的坑
升级后的libcurl已经支持了毫米级别的超时.但是使用的时候还有一个坑需要注意跨过去 . libcurl如果检查到设置的timeout < 1s 那么会直接发出一个信号说 "已经超时 ...