在一个"tarball"中(经过 tar 和 gzip 处理过的文件)备份最后 24 小时之内当前目录下所有修改的文件。

程序代码如下:

#!/bin/bash

BACKUPFILE=backup-$(date +%y-%m-%d)
# 在备份文件中嵌入时间。 archive=${1:-$BACKUPFILE}
# 如果在命令行中没有指定备份文件的文件名,那么将默认使用"backup-YYYY-MM-DD"文件名。 tar cvf - `find . -mtime -1 -type f -print` > $archive.tar gzip $archive.tar echo "Directory $PWD backed up in archive file \"$archive.tar.gz\"." exit 0

注意

如果在发现太多的文件的时候,或者是如果文件名包括空格的时候,将执行失败。

建议使用下边的两种代码之一

# -------------------------------------------------------------------
# find . -mtime -1 -type f -print0 | xargs -0 tar rvf "$archive.tar"
# 使用 gnu 版本的 find # find . -mtime -1 -type f -exec tar rvf "$archive.tar" '{}' \;
# 对于其他风格的 UNIX 便于移植,但是比较慢。
# -------------------------------------------------------------------

find 的 -exec 选项举例说明

找出当前目录下所有 .txt 文件并以 “File: 文件名” 的形式打印出来:

find . -type f -name "*.txt" -exec printf "File: %s\n" {} \;

上例中,{} 用于与-exec选项结合使用来匹配所有文件,然后会被替换为相应的文件名。

xargs 的 -0 选项

xargs -0 将 \0 作为定界符。

Shell 实例:备份最后一天内所有修改过的文件的更多相关文章

  1. 《Advanced Bash-scripting Guide》学习(九):备份最后一天所有修改的文件

    本文所选的例子来自于<Advanced Bash-scripting Gudie>一书,译者 杨春敏 黄毅 Example 3-4. 备份最后一天所有修改的文件 #!/bin/bash # ...

  2. (转)shell实例手册

    原文地址:http://hi.baidu.com/quanzhou722/item/f4a4f3c9eb37f02d46d5c0d9 实在是太好的资料了,不得不转 shell实例手册 0说明{ 手册制 ...

  3. shell 实例

    转载自:https://github.com/liquanzhou/ops_doc    这里只作为笔记使用,不做他用 shell实例手册 0 说明{ 手册制作: 雪松 更新日期: 2018-09-1 ...

  4. 【转载】shell实例手册

    原文地址:shell实例手册  作者:没头脑的土豆 shell实例手册 0说明{ 手册制作: 雪松 更新日期: -- 欢迎系统运维加入Q群: 请使用"notepad++"打开此文档 ...

  5. (转) shell实例手册

    shell实例手册 1文件{ touch file              # 创建空白文件rm -rf 目录名           # 不提示删除非空目录(-r:递归删除 -f强制)dos2uni ...

  6. centos MySQL主从配置 ntsysv chkconfig setup命令 配置MySQL 主从 子shell MySQL备份 kill命令 pid文件 discuz!论坛数据库读写分离 双主搭建 mysql.history 第二十九节课

    centos  MySQL主从配置 ntsysv   chkconfig  setup命令  配置MySQL 主从 子shell  MySQL备份  kill命令  pid文件  discuz!论坛数 ...

  7. shell 实例收集

    shell编程入门 http://www.runoob.com/linux/linux-shell-variable.html http://c.biancheng.net/cpp/shell/ 1. ...

  8. android进入adb shell步骤及修改sqlite数据库文件的权限

    1 准备工作 (1)将adb.exe从  \Sdk\platform-tools目录下移动到 \Sdk\tools目录下(主要是看emulator这几个文件在哪个文件夹就把adb.exe移动到哪个文件 ...

  9. Shell脚本备份Mongodb数据库

    目录 环境还原 环境创建 编写shell脚本 准备文件 创建shell脚本 执行shell脚本 进阶版 感谢 诚邀访问我的个人博客:我在马路边 更好的阅读体验点击查看原文:Shell脚本备份Mongo ...

随机推荐

  1. Python 多进程编程之multiprocessing--Pool

    Python 多进程编程之multiprocessing--Pool ----当需要创建的子进程数量不多的时候,可以直接利用multiprocessing 中的Process 动态生成多个进程, -- ...

  2. 关于webconfig的记录恢复本

    <?xml version="1.0"?> <!--注意: 除了手动编辑此文件以外,您还可以使用 Web 管理工具来配置应用程序的设置.可以使用 Visual S ...

  3. 73.解决Xcode10 library not found for -lstdc++ 找不到问题

    Xcode10 彻底废除了libstdc++,相关文件libstdc++.6.0.9.dylib.libstdc++.6.dylib.libstdc++.dylib.libstdc++.6.0.9.t ...

  4. android 学习网站

    菜鸟教程 http://www.runoob.com/android/android-tutorial.html Android基础入门教程  http://www.runoob.com/w3cnot ...

  5. springBoot基础

    开始之前最基础的东东here 官网:http://projects.spring.io/spring-boot/ 基础快速构建:http://start.spring.io/ 松哥的博客:http:/ ...

  6. mybatis环境配置与入门例子

    1.jar包的导入 mybatis需要jar包:mybatis-3.4.6.jar mysql驱动jar包:mysql-connector-java-5.1.34.-bin.jar 日志记录jar包: ...

  7. 解决C#调用执行js报检索 COM 类工厂中 CLSID 为 {0E59F1D5-1FBE-11D0-8FF2-00A0D10038BC} 组件失败

    最近做了一个模拟请求的网站简化原网站的繁琐数据,提出有用的数据简单展示并完成post.由于原网站数据有js加密,所以我抓出原网站的js解密方法,由C#调用js得到解密后的数据. 整个抓包的框架是用的苏 ...

  8. 10.TreeSet、比较器

    Comparable和Comparator  Comparable 简介 Comparable 是排序接口.若一个类实现了Comparable接口,就意味着"该类支持排序".  即 ...

  9. weblogic安装及配置

    WebLogic是用于开发.集成.部署和管理大型分布式Web应用.网络应用和数据库应用的Java应用服务器. 1.安装Weblogic:(1)点击Next按钮:(2) 选择Custom后点击Next按 ...

  10. 腾讯云播放器更新——TCplayer

    概述 最近腾讯云播放器进行了更新,增加了TCplayer,支持点播播放.由于工作需要,了解了一下TCplayer,把心得记录下来,供以后开发时参考,相信对其他人也有用. 参考文档: TCPlayer开 ...