开发者

tar file not archiving

开发者 https://www.devze.com 2023-03-17 16:25 出处:网络
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 i开发者_如何学Ct runs the shell script from a cron job using crontab

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 i开发者_如何学Ct 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?


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.


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


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?


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.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号