Shell 实例:备份最后一天内所有修改过的文件

在一个"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 作为定界符。

原文地址:https://www.cnblogs.com/GyForever1004/p/8495172.html

时间: 2024-10-16 06:22:54

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

【转载】shell实例手册

原文地址:shell实例手册  作者:没头脑的土豆 shell实例手册 0说明{ 手册制作: 雪松 更新日期: 2013-12-06 欢迎系统运维加入Q群: 198173206 请使用"notepad++"打开此文档,"alt+0"将函数折叠后方便查阅 请勿删除信息,转载请说明出处,抵制不道德行为. 错误在所难免,还望指正! # shell实例手册最新下载地址: http://hi.baidu.com/quanzhou722/item/f4a4f3c9eb37f02

(转) shell实例手册

shell实例手册 1文件{ touch file              # 创建空白文件rm -rf 目录名           # 不提示删除非空目录(-r:递归删除 -f强制)dos2unix                # windows文本转linux文本  unix2dos                # linux文本转windows文本enca filename           # 查看编码  安装 yum install -y enca md5sum        

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

1 准备工作 (1)将adb.exe从  \Sdk\platform-tools目录下移动到 \Sdk\tools目录下(主要是看emulator这几个文件在哪个文件夹就把adb.exe移动到哪个文件夹): (2)将sqlite3.exe从  \Sdk\platform-tools目录下移动到 \Sdk\tools目录下(同上) 2 打开CMD界面,cd到 \Sdk\tools目录下,运行指令 adb shell进入adb界面内 3 定位到数据库所在的位置,chmod 777 file 修改文件

在Oracle实例关闭情况下如何修改spfile的参数

重要说明:由于本文由本人测试并完成,其中可能还有不足之处,另外不同的环境可能也有不同的解决方法,本文仅供参考,并欢迎指证 问题描述: 在11G单机ASM中修改sga大小,修改完后,关闭instance并startup时,提示sga没有达到最小值,因些无法启动,而此时数据库实例已经关闭,已不能在之前的那种模式修改参数,具体的操作如下: 1.查询sga大小 SQL> show parameter sga NAME                     TYPE     VALUE --------

常用shell实例

1. 查找当前目录中所有大于 500M 的文件 , 把这些文件名写到一个文本文件file中,并统计其个数. find / -size +500M -type f | tee /root/file.txt | wc -l  或者 find / -size +50M -exec ls {} \; > /root/test.txt 2. 在目录 /tmp 下找到 100 个以 abc 开头的文件,然后把这些文件的第一行保存到文件 new 中 for filename in `find /tmp -ty

shell实例(一)

shell实例(一) 实例一: 等于 -eq   (equal) 不相等 -ne (not equal) 大于 -gt   (greater than) 小于 -lt  (less than) 大于或等于 -ge (greater than or equal) 小于或等于 -le (less than or equal) 举例如下: #!/bin/bash d=`date` echo $d a=1 if [ $a -lt 3 ] ==if (($a < 3)) then echo "thi

企业之ftp+shell+crontab备份生产数据

备份之FTP 目的:通过shell将备份的数据传到另一台服务器的ftp备份服务器. 模拟tomcat为生产数据. 环境: node1:192.168.1.220 ftp客户端生产服务器 node2:192.168.1.221ftp 服务端备份服务器 第一步:node1安装ftp客户端 yum install ftp –y 第二步:node2安装ftp服务端 yum install vsftpd –y /etc/init.d/vsftpd start chkconfig vsftpd on use

SHELL 自动备份MYSQL数据库(备份单个数据库及所有数据库)

SHELL 自动备份MYSQL数据库 备份单个数据库及所有数据库 楓城浪子原创,转载请标明出处! 更多技术博文请见个人博客:https://fengchenglangzi.000webhostapp.com 微信bh19890922 QQ445718526.490425557 部分截图: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657

【RAC】将单实例备份集恢复为rac数据库

[RAC]将单实例备份集恢复为rac数据库 BLOG文档结构图 前言部分 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 单实例环境的备份集如何恢复到rac环境(重点) ② rman恢复数据库的一般步骤 ③ rac环境的简单操作 注意:本篇BLOG中代码部分需要特别关注的地方我都用***背景和红色字体来表示,比如下边的例子中,thread 1的最大归档日志号为33,thread 2的最大归档日志号为43是需要特别关注的地方.