【问题标题】:tar archiving via cron does not work通过 cron 进行 tar 归档不起作用
【发布时间】:2014-02-21 03:08:35
【问题描述】:

我正在尝试使用 tar 归档本地主机的根文件夹,并希望使用 crontab 每天自动执行它。为此,我在我的个人文件夹中创建了一个“备份文件夹”。我在 Ubuntu 12.04 上运行。

在命令行中执行 tar 没有问题:

sudo tar -cvpzf backupfolder/localhost.tar.gz /var/www

但是,当我在sudo crontab -e 中安排每日备份命令(假设在 17:00)时,它没有执行,即备份没有使用以下命令更新:

0 17 * * * sudo tar -cpzf backupfolder/localhost.tar.gz /var/www

我已经尝试了完整路径home/user/backupfolder/localhost.tar.gz,但没有成功。

var/log/syslog 为我提供了计划执行的以下输出:

Feb  2 17:00:01 DESKTOP-PC CRON[12052]: (root) CMD (sudo tar -cpzfbackupfolder/localhost.tar.gz /var/www)
Feb  2 17:00:01 DESKTOP-PC CRON[12051]: (CRON) info (No MTA installed, discarding output)

/etc/crontab 指定以下路径:

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

我假设 crontab 没有执行,因为这是一个 sudo 命令。

有没有办法让它运行?如果我不想硬编码我的根密码,推荐的安全方法是什么?

【问题讨论】:

    标签: linux ubuntu cron tar


    【解决方案1】:

    嗯,适合你的命令是

    sudo tar -cvpzf backupfolder/localhost.tar.gz /var/www
    

    这意味着,您必须使用 sudo 访问权限运行该命令,并且它无法在您的 crontab 中运行。

    我建议将 cron 作业添加到 root 用户的 crontab。

    基本上,做

    sudo crontab -e

    并在那里添加一个条目

    0 17 * * * cd /home/user/backupfolder && tar -cpzf localhost.tar.gz /var/www
    

    如果这不起作用,请添加 tar 的完整路径(如 /bin/tar)。

    另外,在调试时,将 cronjob 设置为每分钟运行一次 (* * * * *)

    【讨论】:

      【解决方案2】:

      基本上问题在于 sudo 命令,因此我们将允许 sudo 为“用户”运行 tar,而不提示输入密码。

      /etc/sudoers 文件中添加以下行。

      用户 ALL=(ALL) NOPASSWD:/bin/tar

      其中 user 是安装 crontab 的用户。

      【讨论】:

        【解决方案3】:

        我怀疑是PATH问题,尝试在sudo crontab -e顶部设置一些变量:

        MAILTO=your_email@domain.tld # to get the output if there's errors
        PATH=/usr/bin:/bin:/usr/local/bin:/usr/local/sbin:/sbin
        

        【讨论】:

        • 我添加了建议的路径,但不幸的是它仍然不起作用。
        【解决方案4】:

        您可以在 run.sh 之类的脚本中编写命令

        #/bin/sh -l
        tar -cvpzf backupfolder/localhost.tar.gz /var/www
        

        然后使用 crontab 运行脚本。

        重要提示:脚本的第一行有“-l”选项。 试试看。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-10-27
          • 2015-05-02
          • 2017-07-08
          • 1970-01-01
          • 2011-08-25
          • 1970-01-01
          • 1970-01-01
          • 2011-03-20
          相关资源
          最近更新 更多