[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Findutils-patches] xargs problem
From: |
aws backup |
Subject: |
Re: [Findutils-patches] xargs problem |
Date: |
Thu, 22 Dec 2016 21:55:35 +0200 |
Thank you Berny.
You helped me a lot :-)
Wish you the best.
Robert
> On 21 Dec 2016, at 08:40, Bernhard Voelker <address@hidden> wrote:
>
> On 12/20/2016 10:35 PM, aws backup wrote:
>> Ok I started the screen command like this:
>>
>> *screen -dmS test /bin/bash -c "/path/to/fswatch.sh"*
>
> if the script is executable, then you can omit the "/bin/bash -c" here.
>
>> then the first script fswatch.sh:
>>
>> *#!/bin/bash
>> fswatch -0 -Ie '.*\.*$' -i '.*\.mp4$' /path/to/folder \
>> | xargs -0 -n 1 /path/to/s3cmd.sh*
>>
>> then the second script s3cmd.sh:
>>
>> *#!/bin/bash
>> filename="$(basename "$1")"
>> terminal-notifier -message "s3cmd Upload '$filename' started"
>>
>> s3cmd put "$1" s3://bucket/ \
>> | tee /path/to/logfile.txt \
>> | tee >(mail -s 'Upload $filename' address@hidden <mailto:address@hidden>)
>> \
>> && /usr/local/bin/terminal-notifier -message "s3cmd Upload of
>> '$filename' done"*
>> *
>> *
>> The second tee command is to get the output also in the screen terminal to
>> see what's going on when I attach the screen.
>
> tee can do that, maybe you look here to find out how:
> http://www.gnu.org/software/coreutils/tee
>
>> Now what's happening. I change a filename. xargs transfers first the old
>> file name (before renaming) to the script.
>> Therefore I get the notifications upload started and upload done for the old
>> filename and following error from s3cmd
>> (also as email):
>>
>> *ERROR: Parameter problem: Nothing to upload.*
>> *Null message body; hope that's ok*
>> *
>> *
>> Which is correct because the old file is not existing anymore.
>>
>> Then xargs transfers the new file name (after renaming) to the script and
>> everything works as expected. Just the
>> variable "$filename" in the mail command doesn't work. The subject of the
>> notification email is "Upload $filename".
>>
>> How can I avoid that the old file name is transferred to the script?
>
> I do not know fswatch, so you should have a look into its manual how
> to suppress that.
>
>> Why does the mail command not understand $filename?
>
> This is because you have single quotes ('...') around the message text.
> Therefore, the shell doe no variable expansion.
>
> $ v=world
> $ echo 'hello $v'
> hello $v
> $ echo "hello $v"
> hello world
>
> But all this is far beyond the initial xargs question. You're probably
> much better off asking in some shell scripting forum than here on the
> findutils project mailing list.
>
> Have a nice day,
> Berny
- [Findutils-patches] xargs problem, aws backup, 2016/12/19
- Re: [Findutils-patches] xargs problem, Bernhard Voelker, 2016/12/20
- Re: [Findutils-patches] xargs problem, aws backup, 2016/12/20
- Re: [Findutils-patches] xargs problem, Bernhard Voelker, 2016/12/20
- Re: [Findutils-patches] xargs problem, aws backup, 2016/12/20
- Re: [Findutils-patches] xargs problem, Assaf Gordon, 2016/12/20
- Re: [Findutils-patches] xargs problem, aws backup, 2016/12/20
- Re: [Findutils-patches] xargs problem, Bernhard Voelker, 2016/12/21
- Re: [Findutils-patches] xargs problem,
aws backup <=
- Re: [Findutils-patches] xargs problem, James Youngman, 2016/12/21
- Re: [Findutils-patches] xargs problem, Dale R. Worley, 2016/12/20
- Re: [Findutils-patches] xargs problem, aws backup, 2016/12/20