Solved

crond running mulitiple copies

Posted on 2006-10-20
7
294 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
Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

 
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

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

rdate is a Linux command and the network time protocol for immediate date and time setup from another machine. The clocks are synchronized by entering rdate with the -s switch (command without switch just checks the time but does not set anything). …
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.…
Learn how to navigate the file tree with the shell. Use pwd to print the current working directory: Use ls to list a directory's contents: Use cd to change to a new directory: Use wildcards instead of typing out long directory names: Use ../ to move…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.

860 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