我需要一些帮助来解释备份文件的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不同。我错过了什么吗?
感谢。
答案 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显示日志文件的最后更新时间