【问题标题】:shell script to transfer yesterday's logfiles to a ftp server将昨天的日志文件传输到 ftp 服务器的 shell 脚本
【发布时间】:2013-01-02 12:48:42
【问题描述】:

我正在尝试编写一个每天都会触发的 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 服务器。

【问题讨论】:

    标签: shell ftp sh


    【解决方案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 行将添加到您的代码中。第一行获取昨天的日期。然后将其与文件的时间戳进行比较。如果不匹配,则直接跳过该文件。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-12
    • 1970-01-01
    • 2016-01-29
    • 1970-01-01
    • 1970-01-01
    • 2012-04-23
    • 1970-01-01
    • 2013-05-03
    相关资源
    最近更新 更多