使用cron

时间:2016-11-21 03:38:28

标签: linux shell cron solaris

我需要一些帮助来解释备份文件的cron。

我有一个shell脚本来备份在RHEL 6.7和Solaris 10中运行的日志文件。它会将日志文件移动到备份目录并对每个日志文件进行gunzip。

这是剧本。

#!/bin/bash

# Defined variable
dirLog=/app/rbt3/prod/cda/logs
dirBackup=/app/rbt3/prod/cda/logs/backup

# Change directory to CDA logfile
cd $dirLog

# Backup mechanism
for file in `ls *.log.*` ; do
    #echo "FileSemua -> $file"
    echo " Pindahkan file $file ke directory $dirBackup "    
    /bin/mv $dirLog/$file $dirBackup
    echo " start Gzip file [$file]..... "
    /bin/gzip $dirBackup/$file
    echo " done Gzip file [$file]..... "
done

该脚本在crontab中注册,每天 1:20 运行。

20 1 * * * /app/prod/logs/backupLog.sh

这里是cron创建的备份文件。

-rw-r--r-- 1 user3 user   36344 Nov 18 11:59 alarm.log.20161117.gz
-rw-r--r-- 1 user3 user   35085 Nov 19 11:59 rsync.log.20161117.gz
-rw-r--r-- 1 user3 user   35018 Nov 20 11:59 trace.log.20161117.gz

据我所知,当我们在cron中注册脚本一段时间。它会像cron所说的那样运行并创建文件(如果我错了,请纠正我)。但就我而言,创建备份文件的时间与cron不同。我错过了什么吗?

感谢。

1 个答案:

答案 0 :(得分:0)

移动文件时间戳时不会更改。并使用gzip进行压缩,使用文件时间戳。这就是为什么你会看到不同的时间戳

$ ls -l
-rw-r--r-- 1 user3 user   36344 Nov 18 11:59 alarm.log.20161117.gz
-rw-r--r-- 1 user3 user   35085 Nov 19 11:59 rsync.log.20161117.gz
-rw-r--r-- 1 user3 user   35018 Nov 20 11:59 trace.log.20161117.gz

ls -l显示日志文件的最后更新时间