我在shell脚本中执行以下操作:
tar cvzf mytar.tgz *
从终端运行shell脚本时,它工作正常。当它使用crontab从cron作业运行shell脚本时,它看起来像是存档的,因为tgz文件在那里,但文件大小没什么,当我解开它时,那里什么都没有。但是,当我通过终端运行shell脚本时,tgz有一个更大的文件大小,我可以解压缩它们。
任何人都知道为什么它不能通过cronjob工作?
答案 0 :(得分:1)
尝试指定要存档的文件的完整路径:
tar cvzf mytar.tgz /path/to/your/files/*
Cron从$ HOME的不同目录运行。
答案 1 :(得分:0)
cronjob进程的工作目录是什么?如果其中没有任何内容,则该命令将归档所有内容。
答案 2 :(得分:0)
首先,不需要在cron中详细说明。
其次,看起来你在那里使用相对路径。考虑使用绝对路径,即使对于tar命令本身也是如此。
最后,哪个用户正在运行cron?是否存在权限问题或配额问题?
答案 3 :(得分:0)
到目前为止,其他答案给出了很好的建议。 Cron在命令中允许的内容中有很多特殊规则。当我制作一个简单的shell脚本时,我取得了最大的成功,并将它放在$ HOME / cron,chmox 755中,然后在cron中放入它的完整路径。确保测试脚本 - 确保在必要时进行cd'ing。请注意,cron不仅不一定会从您的家中运行命令,而且可能会有不同的PATH,其他环境设置也将丢失。