public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: Sorin Adrian Savu <sorin@itguy.ro>
To: cygwin@cygwin.com
Subject: Re: How to repeat a bash shell script until success
Date: Sat, 15 Jul 2017 18:40:00 -0000	[thread overview]
Message-ID: <CAFeE7GnAE5JPeWMVHNNHhqGOFC_Zf_nH47RarxGiXrBNWtOo8g@mail.gmail.com> (raw)
In-Reply-To: <8bb16934-972b-5d3e-918f-36eec3d16ca6@gmail.com>

On Fri, Jul 14, 2017 at 4:06 PM, cyg Simple <cygsimple@gmail.com> wrote:
>
> On 7/14/2017 1:27 AM, Gary Johnson wrote:
> > On 2017-07-12, Bryan Dunphy wrote:
> >> I have a shell script, originally created for Mac OS X. that waits
> >> for an external drive to be mounted (by testing an “ls” of the
> >> volume’s root directory for success) then runs an “rsync” command.
> >> How do I get the script to be run repeatedly until successful exit
> >> under Cygwin?
> >>
> >> Here is the unmodified Mac OS version of the script:
> >>
> >> #!/bin/bash
> >> if ls /Volumes/Shared >/dev/null 2>/dev/null
> >> then
> >>         rsync -avz --compress-level=9 --delete-during --partial --exclude 'cache/' aleph.gutenberg.org::gutenberg /Volumes/Shared/Project-Gutenberg
> >>         exit 0
> >> else
> >>         exit 1
> >> fi
> >
> > Let the name of your script be "myscript".  The following will run
> > myscript every two seconds until it succeeds.
> >
> >     while ! myscript; do sleep 2; done
> >
> > This is really a bash programming question and is not specific to
> > Cygwin.
> >
>
> In reality the OP script appears to be executed in a crontab system and
> executed every X minutes.  So a change to the OP question is needed
> which is answered at[1].  Let's remember some people have no real clue
> as to what question they should ask and we need to interpret what is
> being asked into what should have been asked.  If interpretation isn't
> possible then asking for a use case would be warranted.
>
> [1]
> https://stackoverflow.com/questions/707184/how-do-you-run-a-crontab-in-cygwin-on-windows


Actually, the correct question would be: how do I run a bash script
when a USB stick is mounted ?

Which is doable via Task Scheduler and a event log trigger. See
https://answers.microsoft.com/en-us/windows/forum/windows_vista-windows_programs/task-scheduler-how-to-automatically-synchronize-my/45a49d83-b1d8-4d37-8896-3d2696cf9795
on how to locate the appropriate event,

As for the script:

- don't use ls for checking file/directory presence use -f/-d (man test)
- you will need to adjust paths (cygwin has windows drives under
/cygdrive (cygpath -h)

On how to run the script from Task Scheduler use an action like this:

C:\Tools\cygwin64\bin\bash.exe -c /cygdrive/c/tools/cygwin64/home/bryan/bkp.sh
(adjust your paths accordingly )
>
>
>
> --
> cyg Simple
>
> --
> Problem reports:       http://cygwin.com/problems.html
> FAQ:                   http://cygwin.com/faq/
> Documentation:         http://cygwin.com/docs.html
> Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
>

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

  reply	other threads:[~2017-07-15  6:56 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-14  0:16 Bryan Dunphy
2017-07-14  1:12 ` Brian Inglis
2017-07-14  5:31 ` Gary Johnson
2017-07-14 13:06   ` Gary Johnson
2017-07-14 17:07   ` cyg Simple
2017-07-15 18:40     ` Sorin Adrian Savu [this message]
2017-07-17 17:41       ` cyg Simple
2017-07-17 17:46     ` Ian Lambert via cygwin
2017-07-14 17:34 ` Kaz Kylheku
2017-07-14 19:20   ` Brian Inglis
2017-07-14 19:23 Kaz Kylheku

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAFeE7GnAE5JPeWMVHNNHhqGOFC_Zf_nH47RarxGiXrBNWtOo8g@mail.gmail.com \
    --to=sorin@itguy.ro \
    --cc=cygwin@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).