From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 65488 invoked by alias); 17 Jul 2017 13:40:16 -0000 Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner@cygwin.com Mail-Followup-To: cygwin@cygwin.com Received: (qmail 64478 invoked by uid 89); 17 Jul 2017 13:40:15 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.4 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,SPF_PASS autolearn=no version=3.3.2 spammy=gutenberg, stick, interpretation, waits X-HELO: mail-io0-f179.google.com Received: from mail-io0-f179.google.com (HELO mail-io0-f179.google.com) (209.85.223.179) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 17 Jul 2017 13:40:13 +0000 Received: by mail-io0-f179.google.com with SMTP id r36so43202613ioi.1 for ; Mon, 17 Jul 2017 06:40:13 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=xs7dRNQP3J/Tsn46NHxLdlcty/X0aWt+LGDF12laEtw=; b=im0SlhUizLbHrcmgqQ+zIYcEu5UqWXss6bxKoirAqpywaMbWHk/kMkd1NKCHBOhlYx bFeVW1hcBT0hP+daqK5p/huHBGcERVHksjbywZpmORkNb2Kju7CTwkiSZ65Sn+SpatHf 6rSTGP+Z6g8mfSPeAMwEMC69ZPbO308aksoRNKjmaQafwNd3quipP5Z7he6V4vN1e4Kr y726MoWTn+UsHuXQQbDc1bey9qmlE7vtyPxF+LhDylvHcljZDzEURtNaR5VU1fTCajNc 6I88IjZWGhWWvSmlxC0PsU6d+F4DjXW50rgkF1MPBMmW8nMIBKYv7bAybTyUHO+DjD9K lbog== X-Gm-Message-State: AIVw113s6b5mnfMGCnwDU/LecjVou7Q34tfleMzmkYpBEgepMJCOgRLj p6Z4X0FpL4vsBuEh X-Received: by 10.107.151.21 with SMTP id z21mr18501571iod.205.1500298811724; Mon, 17 Jul 2017 06:40:11 -0700 (PDT) Received: from [192.168.0.6] (d4-50-42-50.try.wideopenwest.com. [50.4.50.42]) by smtp.gmail.com with ESMTPSA id h131sm8895168ioh.38.2017.07.17.06.40.10 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 17 Jul 2017 06:40:11 -0700 (PDT) Subject: Re: How to repeat a bash shell script until success To: cygwin@cygwin.com References: <97021E71-D804-42AF-8358-6276AF4514AB@gmail.com> <20170714052736.GA2895@phoenix> <8bb16934-972b-5d3e-918f-36eec3d16ca6@gmail.com> From: cyg Simple Message-ID: <7fdc576e-a16f-1f8a-f539-165fa9e63027@gmail.com> Date: Mon, 17 Jul 2017 17:41:00 -0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-IsSubscribed: yes X-SW-Source: 2017-07/txt/msg00257.txt.bz2 On 7/15/2017 2:56 AM, Sorin Adrian Savu wrote: > On Fri, Jul 14, 2017 at 4:06 PM, cyg Simple 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) > And don't forget the user has the option to change /cygdrive to something else including / which is my preference. > 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 ) Yes, if you don't want to run cygserver, this is another option. But if you're moving from a *nix based system then using cron under cygserver is what you want. -- 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