我有一个目录(比如说)数据/测试/ 我每隔几分钟收到一次 .dat 文件,但仅在结束时说2小时我想要压缩所有文件那些文件然后再睡2小时再次重复这个循环。
任何帮助非常感谢
答案 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脚本...))