shell脚本将昨天的日志文件传输到ftp服务器

时间:2013-01-02 12:48:42

标签: shell ftp sh

我正在尝试编写一个每天都会触发的shell脚本,并将昨天的日志文件从多个服务器传输到ftp服务器。

到目前为止,我已设法复制它们并根据命名约定(必须包含YYYYMMDD)将它们重命名为另一个目录,但不在FTP上。

这是我到目前为止所得到的:

#!/bin/sh

path=/home/log/
backupPath=/home/new_directory/log

if [ ! -d $backupPath ]; then
echo "$backupPath does not exist. Create it" 
mkdir $backupPath
fi;

server=$(uname -n)
for filename in $path/*string*; do    

timestamp=$(date -d "$(stat -c %y "$filename")" +%Y%m%d)

basename=$(basename $filename)

newfilename=$(echo "$basename" | sed s/access/access_"$timestamp"_"$server"/g)

cp $filename $backupPath"/$newfilename"
echo "$filename moved to $backupPath/$newfilename"

done

现在我需要修改它以仅将昨天格式良好的文件复制到FTP服务器。

1 个答案:

答案 0 :(得分:1)

像这样(未经测试):

timestamp=$(date -d "$(stat -c %y "$filename")" +%Y%m%d)

yday=$(date -d "yesterday"  +%Y%m%d)
[ "$yday" != "$timestamp" ] && continue

basename=$(basename $filename)

中间的2行将添加到您的代码中。第一行是昨天的日期。然后将其与文件的时间戳进行比较。如果不匹配,则简单地跳过该文件。