[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Findutils-patches] xargs problem
From: |
Bernhard Voelker |
Subject: |
Re: [Findutils-patches] xargs problem |
Date: |
Wed, 21 Dec 2016 07:40:53 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 |
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 <=
- Re: [Findutils-patches] xargs problem, aws backup, 2016/12/22
- 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