AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 33550
Accepted
DHamrick
DHamrick
Asked: 2009-06-30 16:21:13 +0800 CST2009-06-30 16:21:13 +0800 CST 2009-06-30 16:21:13 +0800 CST

使用 Crontab 定期 tar 目录

  • 772

我想定期 tar 一个目录(比如每天早上 4 点),所以我打算使用 crontab。我怎样才能将日期放在文件名中,即 srcdirectorybackup5-30-09.tar 以便我可以区分所有 tar 文件。

cron tar
  • 5 5 个回答
  • 20722 Views

5 个回答

  • Voted
  1. ericslaw
    2009-06-30T17:15:08+08:002009-06-30T17:15:08+08:00

    确认!

    几个人提出了美妙的日期 +%Y%m%d_%H%M%S 风格的解决方案,但没有人提到 crontabs 中“%”的主要警告......

    '%' 相当于 '\n' 所以你的 cronjob 可能会触发并神秘地失败!

    你更可能想用这样的反斜杠简单地转义它(我也想获得某种库存或其他输出来检查它是否运行)。

    0 4 * * * tar vcf /path/to/dsttarfile.tar.`date +\%Y\%m\%d_\%H\%M\%S` /path/to/srcdir > /path/to/logfile.log 2>&1
    

    您可能会考虑使用 `date +%w' 作为 tar 文件的一部分,这样您在过去 7 天的每一天都有一个 tar 文件,而不必担心清除旧副本。

    • 14
  2. Best Answer
    Evan Anderson
    2009-06-30T16:31:53+08:002009-06-30T16:31:53+08:00

    您需要 ISO 格式的日期 - YYYY-MM-DD。他们以这种方式正确排序。

    tar -cf srcdirectorybackup`date +%F`.tar /path/to/src
    

    假设 tar 和 date 在路径中。您可以将此行添加到 crontab。

    绉纱!ericslaw是绝对正确的。如果在 crontab 文件中使用这些 %,则需要对其进行转义,否则它们将被解释为换行符!

    因此,如果您打算将此行直接放入 crontab,请使用“\”转义“%”。

    tar -cf srcdirectorybackup`date +\%F`.tar /path/to/src
    

    代表真的应该去爱立信...

    • 10
  3. Geo
    2009-06-30T16:38:52+08:002009-06-30T16:38:52+08:00

    在许多 Linux 发行版中,这是您必须遵循的步骤:

    1. crontab -e
    2. 在文本编辑器中输入:0 4 * * * /home/scripttaringsrc.sh
    3. 退出编辑器用 ":wq" 保存文件

    创建文件 /home/scripttaringsrc.sh

    tar -cf srcdir 'date +%Y-%m-%d_%Hh%Mm'.tar /path/to/dst
    

    不要忘记对 scripttaringsrc.sh 进行 chmod 以执行权限。

    • 1
  4. Babu
    2009-06-30T16:34:22+08:002009-06-30T16:34:22+08:00

    假设您可以处理 crontab 的东西,对于 bash,命令如下:

    bash -c "tar -cf `date +%F`test.tar foo bar"
    

    当然, foo 和 bar 是文件, test.tar 是你想要的文件后缀的其余部分,你可以输入你需要的任何选项:)

    这适用于 cygwin 和 linux。我对 cron 不够熟悉,不知道是否有必要告诉它使用哪个 shell。

    • 0
  5. Johan
    2009-06-30T21:31:25+08:002009-06-30T21:31:25+08:00

    我有这个小脚本可以打包我的整个 etc 目录并将其保存在具有正确日期的目录中。

    保存此脚本并将其放入 /etc/cron.daily/ (如果在您的 dist 中可用),因为该目录中的脚本通常执行“每天一个”,有时在 4 左右。但是快速查看 / etc/crontab 将显示确切的详细信息。

    #!/bin/sh
    
    date=`date +%Y%m%d-%H%M`
    #echo Tid: $date
    
    bpath=/var/backup/computername
    
    cd $bpath/
    mkdir sys$date
    cd sys$date
    
    datumfil=$bpath/sys$date/$date
    > $datumfil
    
    tar -cvzf etc.tar.gz /etc/ > etc.tar.gz.list
    
    md5sum * >  md5sum
    ls -lh   >> md5sum
    

    注意:您需要稍作更改,以便获得所需的“正确”文件名。

    /约翰

    • 0

相关问题

  • sqlldr 作业未通过 Autosys 运行

  • 有没有办法在 linux 平台上以回调样式自动执行 perl 脚本?

  • 错误发生在来自 crontab 的 sudo 中的命令

  • 让 crontab 更高效

  • Unix Crontab 作业时间冲突?[复制]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve