Schedule and execute a PHP script automatically
Asked Answered
A

7

6

I have written a PHP script which generates an SQL file containing all tables in my database. What I want to do is execute this script daily or every n days. I have read about cron jobs but I am using Windows. How can I automate the script execution on the server?

Albina answered 4/5, 2010 at 9:6 Comment(0)
C
4

You'll need to add a scheduled task to call the URL.

First of all, read up here: MS KB - this is for Windows XP.

Second, you'll need some way to call the URL - i'd recommend using something like wget - this way you can call the URL and save the output to a file, so you can see what the debug output is. You can get hold of wget on this page.

Final step is, as Gabriel says, write a batch file to tie all this up, then away you go.

e: wget is pretty simple to use, but if you have any issues, leave a comment and I'll help out.

ee: thinking about it, you don't even really need a batch file, and could just call wget directly..

Cason answered 4/5, 2010 at 9:17 Comment(11)
@Cason : Hello!Thanks a lot for the links. I have a question, concerning the first link, if my application is on the running on a server how do i Add a Schedule Task?Albina
There are two things here - the first is the server, and the second is where you call the script on the server from. Where you call the script from can be anywhere, it can be on the same machine, or on a different remote machine. Imagine you have the script on www.mybox.com/dailyscript.php - on your office or home machine you add a scheduled task which calls that script using wget (or whatever) and basically, it should "Just Work".Cason
when adding a schedule task, i need to specify the action that will occur and its details. I have selected: Start a program and localhost/final/myscript.php. Is that correct?Albina
it may work, but if you change it to "wget localhost/final/myscript.php" then for sure it'll be fine. Put a target for the file it gets and that should be done.Cason
i have changed it to wget but it does not seem to work. Can you help me please?Albina
C:\Program files\GnuWin32\bin>wget I get : SYSTEM_WGETRC = c:progra.... syswgetrc = C:\Program Files.. wget: missing URLAlbina
and if you do "wget localhost/final/myscript.php"?Cason
Yes it works! myscript.php is supposed to send a mail. The mail successfully sent. So now that it works from command line, can you guide me how to solve the problem?Albina
ive found my mistake! Thanks a lot danp! i should have written "C:\Program Files\GnuWin32\bin\wget.exe" localhost/final/myscript.phpAlbina
no probs :) I thought that what was going on was that the path to wget was not in the "PATH ... " environment variable, so it couldn't be found... If you want to add it in, just add the directory where wget is to your environment, but be careful, as it's pretty easy to break stuff. More info here: support.microsoft.com/kb/310519Cason
@dmp i have doubt in cron job may i ask?Pindaric
C
2

add a scheduled task to request the url. either using a batch file or a script file (WSH).

http://blog.netnerds.net/2007/01/vbscript-download-and-save-a-binary-file/

this script will allow you to download binary data from a web source. Modify it to work for you particular case. This vbs file can either be run directly or executed from within a script. Alternately you do not have to save the file using the script, you can just output the contents (WScript.Echo objXMLHTTP.ResponseBody) and utilize the CMD out to file argument:

cscript download.vbs > logfile.log

save that bad boy in a .bat file somewhere useful and call it in the scheduler: http://lifehacker.com/153089/hack-attack-using-windows-scheduled-tasks

Comedo answered 4/5, 2010 at 9:7 Comment(2)
can you send me some links please?Albina
@Gabriel:Thanks for the linksAlbina
G
1

Cron is not always available on many hosting accounts.

But try this: http://www.phpjobscheduler.co.uk/ its free, has a useful interface so you can see all the scheduled tasks and will run on any host that provides php and mysql.

Gallstone answered 10/2, 2011 at 8:31 Comment(0)
I
1

You can use ATrigger scheduling service. A PHP library is also available to create scheduled tasks without overhead. Reporting, Analytics, Error Handling and more benefits.

Disclaimer: I was among the ATrigger team. It's a freeware and I have not any commercial purpose.

Ivett answered 26/8, 2013 at 12:26 Comment(0)
O
0

Windows doesn't have cron, but it does come with the 'at' command. It's not as flexible as cron, but it will allow you to schedule arbitrary tasks for execution from the command line.

Oxblood answered 4/5, 2010 at 20:53 Comment(0)
A
0

Yes, You can schedule and execute your php script on windows to run automatically. In linux like os u will have cron but on windows u can schedule task using task scheduler.

Aubarta answered 26/11, 2012 at 14:42 Comment(0)
S
0

If your code is in remote hosted server then create a cron-job for the same. Else if in local then use a scheduled task in windows.Its easy to implement.I am having servers with so many scheduled tasks running.

Sematic answered 21/2, 2022 at 20:24 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.