我想写一个shell脚本来将生成的日志文件复制到1小时到/ tmp目录。我希望在cron中安排此脚本,以便可以每小时运行此作业并将新生成的日志文件复制到/ tmp中。
谢谢,
答案 0 :(得分:0)
您将文件作为参数,它会显示正在发生的日志... 您可以将脚本更改为从stdout重定向到文件...
#!/bin/bash
GAP=10 #How long to wait
LOGFILE=$1 #File to log to
if [ "$#" -ne "1" ]
then
echo "USAGE: ./watch-log.sh <file with absolute path>"
exit 1
fi
#Get current long of the file
len=`wc -l $LOGFILE | awk '{ print $1 }'`
echo "Current size is $len lines."
while :
do
if [ -N $LOGFILE ]
then
echo "`date`: New Entries in $LOGFILE: "
newlen=`wc -l $LOGFILE | awk ' { print $1 }'`
newlines=`expr $newlen - $len`
tail -$newlines $LOGFILE
len=$newlen
fi
sleep $GAP
done
exit 0
答案 1 :(得分:0)
使用find命令将能够实现上述功能,假设/ tmp不在搜索路径中 和日志文件的扩展名为.log
find $PATH_TO_SEARCH -type f -name "*.log" -cmin -60 -exec cp {} /tmp \;
# Above single command can be configured as cron job.