Solved

crond running mulitiple copies

Posted on 2006-10-20
7
291 Views
Last Modified: 2013-12-16
I have crontab running a wget every night at 8pm, with the following command:

* 20 * * * wget http://www.domain.com/admin/dbcleanup.php > /dev/null 2>&1

Or at least that's what I expect that it does....

Well every night I look at the machine around 8:30 and there's 15 or so copies of the above command running.  

FYI, the scriipt does take about 90 seconds to complete.

Am I invoking the script incorrectly in crontab?
thanks
0
Comment
Question by:bennybutler
  • 4
  • 3
7 Comments
 
LVL 45

Expert Comment

by:sunnycoder
ID: 17778355
Hi bennybutler,

The cron is correct .... multiple instances you see are those of threads spawned by wget.

Cheers!
sunnycoder
0
 
LVL 1

Author Comment

by:bennybutler
ID: 17778374
Ouch! All this time...

Strange, i never noticed it doing that before when I tested from the command line.

So, would curl --get http://www.dailycommunicator.com/admin/dbcleanup.php > /dev/null 2>&1

Get the job done without spawning?    I just need one copy to fire up, and run for a max of 2 minutes.  The way it's working now, with so many copies running, it takes hours for them all to finish.

Thanks ,
0
 
LVL 45

Expert Comment

by:sunnycoder
ID: 17778390
>FYI, the scriipt does take about 90 seconds to complete
>I just need one copy to fire up, and run for a max of 2 minutes.
Seems like current solution fits your needs!!!

Number of copies should nto matter here. They would actually be making your script run faster. Network and disc access are typically lot more slower as compared to CPU processing power ... If you use a single threaded application, it would block for completion of each network and disc access. As of now, if one thread blocks for a resource, another thread can continue execution. Also all threads can download in parallel rather than one downloading at a time.

Cheers!
sunnycoder
0
Backup Your Microsoft Windows Server®

Backup all your Microsoft Windows Server – on-premises, in remote locations, in private and hybrid clouds. Your entire Windows Server will be backed up in one easy step with patented, block-level disk imaging. We achieve RTOs (recovery time objectives) as low as 15 seconds.

 
LVL 1

Author Comment

by:bennybutler
ID: 17778423
Normally yes, but I failed to mention, the objective here is NOT to get the output of the dbcleanup.php.  The output is simply 'complete'

I just need the script triggered.  The script runs a number of mysql delete functions, such as

delete from log where date < date_sub(curdate, interval 30 day)

Yeah, that's wrong, but you get the idea.  The problem I'm having is I end up with 10-15 of those running, all competing to run server.  Mysql locks the table for each delete, so they all line up and try to run one after another, and the longer it runs, the more copies start up...

I just need a single instant to run, and no more. So should I stick with the wget, and some flag, or switch to the curl.  Hell, even ab would do it, I just need to make sure it's only kicked off once a night.
0
 
LVL 45

Accepted Solution

by:
sunnycoder earned 125 total points
ID: 17778455
wget ahs no switch to make it run in non-interactive mode and I am not sure how curl would handle it .. Initial search shows that curl implementation uses threads too.

If you need a single access, why not use a non-interactive browser instead?

Something like
http://www.w3.org/LineMode/User/CommandLine.html

www -n  http://www.dailycommunicator.com/admin/dbcleanup.php > /dev/null 2>&1
0
 
LVL 1

Author Comment

by:bennybutler
ID: 17778470
I'm going to try my hand with curl first.  i know it's much more 'integration friendly' as I've used it to process credit cards with authorize.net.  I think if it's default tendency was to spawn copies of itself, when I'm charging a credit card' then I'd know it already.

I am interested in that command line browser though, I've never seen that one.

Thanks for the help!
0
 
LVL 45

Expert Comment

by:sunnycoder
ID: 17778486
ooops
> wget ahs no switch to make it run in non-interactive mode an
should have been
 wget has no switch to make it run as a single thread ...

Thanks :)
0

Featured Post

Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

Join & Write a Comment

I am a long time windows user and for me it is normal to have spaces in directory and file names. Changing to Linux I found myself frustrated when I moved my windows data over to my new Linux computer. The problem occurs when at the command line.…
Linux users are sometimes dumbfounded by the severe lack of documentation on a topic. Sometimes, the documentation is copious, but other times, you end up with some obscure "it varies depending on your distribution" over and over when searching for …
Learn how to find files with the shell using the find and locate commands. Use locate to find a needle in a haystack.: With locate, check if the file still exists.: Use find to get the actual location of the file.:
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.

708 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now