【问题标题】:Script to transfer files from one server to an archive server将文件从一台服务器传输到存档服务器的脚本
【发布时间】:2022-01-24 19:18:32
【问题描述】:

我的任务是编写一个脚本以将日志文件从一台服务器传输到存档服务器,但是当我运行该脚本时,我不断收到以下错误:

test.sh: line 4: unexpected EOF while looking for matching `''

test.sh: line 22: syntax error: unexpected end of file

脚本如下。

for D in `find  /var/log/syslog/hosts/* -type d -iname *rrp0* -o prp01* *`
do

    for F in `find $D -type f -mtime +7 -name "*.tar.gz"`
    do
            echo $F
            filename=$(basename "$F");
            SERVER=${filename%.*};
            SERVER=$(echo $SERVER |cut -d "-" -f5);
    echo $SERVER
            if [ ! -d /var/log/syslog/archive/$SERVER ]
            then
                   mkdir /var/log/syslog/archive/$SERVER;
            fi
            mv $F /var/log/syslog/archive/$SERVER
            Log is already compressed, so no need to zip/rm it
            cd $D;
            zip /var/log/syslog/archive/$SERVER/$filename.zip $filename;
            Remove original file
            yes|rm $F
    done
done

【问题讨论】:

  • 假设“for D in ..”这一行是脚本的一部分:最后在 do 之前需要换行符或分号。另外,您确定 prp01* * 符合您的预期吗?

标签: scripting


【解决方案1】:

尝试更改第一行

来自

for D in `find  /var/log/syslog/hosts/* -type d -iname *rrp0* -o prp01* *`

for D in `find  /var/log/syslog/hosts/* -type d \( -iname '*rrp0*' -o -iname 'prp01*' \)`

【讨论】:

    猜你喜欢
    • 2017-07-13
    • 1970-01-01
    • 2022-11-05
    • 2016-10-18
    • 1970-01-01
    • 1970-01-01
    • 2011-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多