tar 文件未归档

发布于 2024-11-18 23:18:57 字数 269 浏览 2 评论 0原文

我正在 shell 脚本中执行以下操作:

tar cvzf mytar.tgz *

当我从终端运行 shell 脚本时,它工作正常。当它使用 crontab 从 cron 作业运行 shell 脚本时,它看起来像是已存档,因为 tgz 文件在那里,但文件大小什么都没有,当我解压它时,那里什么也没有。但是,当我通过终端运行 shell 脚本时,tgz 具有更大的文件大小,我可以解压它们。

有人知道为什么它不能通过 cronjob 工作吗?

I am doing the following in a shell script:

tar cvzf mytar.tgz *

It works fine when I run the shell script from a terminal. When it runs the shell script from a cron job using crontab it looks like it is archived because the tgz file is there but the filesize is nothing and when I untar it there is nothing there. However, when I run the shell script via terminal the tgz has a larger filesize and I can untar them.

Anyone know why it won't work via the cronjob?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

酒浓于脸红 2024-11-25 23:18:57

尝试指定要归档的文件的完整路径:

tar cvzf mytar.tgz /path/to/your/files/*

Cron 从与 $HOME 不同的目录运行。

Try specifying the complete path to the files you want to archive:

tar cvzf mytar.tgz /path/to/your/files/*

Cron runs from a different directory from your $HOME.

夏日落 2024-11-25 23:18:57

cronjob 进程的工作目录是什么?如果其中没有任何内容,则该命令将归档所有内容。

What's the working directory of the cronjob process? If there's nothing in it, then the command will archive all of the nothing.

青柠芒果 2024-11-25 23:18:57

首先,cron 中不需要冗长。

其次,看起来您在那里使用相对路径。考虑使用绝对路径,即使对于 tar 命令本身也是如此。

最后,哪个用户正在运行 cron?是否存在潜在的权限问题或配额问题?

First, no need to be verbose in a cron.

Second, it looks like you are using relative pathing there. Consider using absolute paths, even for the tar command itself.

Last, which user is running the cron? Is there a potential for a permissions issue or a quota issue?

等待我真够勒 2024-11-25 23:18:57

到目前为止,其他答案都给出了很好的建议。 Cron 有很多关于命令中允许的特殊规则。当我制作一个简单的 shell 脚本并将其放入 $HOME/cron 中,chmox 755 并将其完整路径放入 cron 中时,我取得了最大的成功。确保测试脚本 - 确保根据需要进行 cd'ing。请注意,cron 不仅不一定会从您的家中运行该命令,而且它也可能具有不同的路径,并且其他环境设置也会丢失。

The other answers so far give good advice. Cron has a lot of special rules wrt what is allowed in the command. I have he most success when I make a simple shell script, and put it in $HOME/cron, chmox 755 it and put the full path to it in cron. Making sure to test the script - ensuring to cd'ing as necessary. Be aware that cron not only won't necessarily run the command from your home, but it will also likely have a different PATH and other environment settings will be missing.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文