如何在unix中每隔一小时压缩一次文件

时间:2014-05-20 06:30:32

标签: shell unix

我有一个目录(比如说)数据/测试/ 我每隔几分钟收到一次 .dat 文件,但仅在结束时说2小时我想要压缩所有文件那些文件然后再睡2小时再次重复这个循环。

任何帮助非常感谢

3 个答案:

答案 0 :(得分:0)

像这样简单的东西可能是:

while : ; do sleep 7200; tar czf /tmp/data.tgz /data/Test; done &

与cron相比,这种方法有优点和缺点。这种方法很快&容易与PATH或crontab中的权限或非法字符没有问题。缺点是,如果重新启动或注销,它将不会持久存在。

答案 1 :(得分:0)

你可以创建一个cron作业,每隔两个小时就像这样创建一个zip文件。

输入crontab -e然后输入

0 0-23 / 2 * * * /path/to/your/script/to/create/zip.sh

答案 2 :(得分:0)

另一种方式(直到下次关机):

#!/usr/bin/bash
# this script executes, and re-schedules itself every 2 hours

nb_hours=2

do_something () {
   ........
}

# main:

cd -P "${direname "$0"}"

#do something:
do_something

#and schedule yourself to re-run in $nb_hours hours :
echo "$(basename "$0")" | at now + ${nb_hours} hours

注意:每次启动时都需要启动此脚本一次(例如使用启动文件)   (所以crontab可能更适合,但我想展示那个也很好的选项:你可以让脚本决定重新安排自己或者不是,取决于某些条件,例如(好吧,你也可以通过在开头添加条件来完成cron脚本...))