<div class="gmail_quote"><div class="gmail_quote"><div class="im">2011/1/7 LAPLAUD François <span dir="ltr"><<a href="mailto:laplaud@sdis72.fr" target="_blank">laplaud@sdis72.fr</a>></span><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Yes indeed,<div class="im"><br>
Here are my needs :<br>
- a working wpkg ( ;-) )<br>
- possibility to run wpkg periodically to be able to deploy packages in background while users are working. </div></blockquote><div><br></div><div>I use CRON (<a href="http://www.kalab.com/freeware/cron/cron.htm" target="_blank">http://www.kalab.com/freeware/cron/cron.htm</a>) to do this.  <span style="font-family:arial, sans-serif;font-size:13px;border-collapse:collapse">I prefer these native versions to PyCron since they don't require a Python installation.</span></div>

<span style="font-family:arial, sans-serif;font-size:13px;border-collapse:collapse"><br>For running WPKG, I use the crons.exe version which installs itself as a service.  After copying crons.exe and a crontab file to C:\WINDOWS\SYSTEM32, I just run these two commands:<br>

<br>c:\windows\system32\crons.exe /install<br>c:\windows\system32\sc.exe start <span style="background-color:rgb(255, 255, 136);color:rgb(34, 34, 34);background-repeat:initial initial">CRON</span></span></div>
<div class="gmail_quote"><font color="#222222" face="arial, sans-serif"><span style="border-collapse:collapse"><br></span></font></div><div class="gmail_quote"><span style="background-color:rgb(255, 255, 136)"></span><font color="#222222"><span style="color:rgb(0, 0, 0)"><font face="arial, sans-serif"><span style="border-collapse:collapse">And here is an example of the crontab that I use (look out for wrapped lines below):</span></font><br>

<font face="'courier new', monospace"><span style="border-collapse:collapse;font-size:13px">-----------------------------------------------------</span><br><span style="border-collapse:collapse;font-size:13px"># Basic crontab format:</span><br>

<span style="border-collapse:collapse;font-size:13px">#</span><br><span style="border-collapse:collapse;font-size:13px"># +---------------- minute (0 - 59)</span><br><span style="border-collapse:collapse;font-size:13px"># |  +------------- hour (0 - 23)</span><br>

<span style="border-collapse:collapse;font-size:13px"># |  |  +---------- day of month (1 - 31)</span><br><span style="border-collapse:collapse;font-size:13px"># |  |  |  +------- month (1 - 12)</span><br><span style="border-collapse:collapse;font-size:13px"># |  |  |  |  +---- day of week (0 - 6) (Sunday=0)</span><br>

<span style="border-collapse:collapse;font-size:13px"># |  |  |  |  |</span><br><span style="border-collapse:collapse;font-size:13px"># *  *  *  *  *  command to be executed</span><br><span style="border-collapse:collapse"></span><br>

<span style="border-collapse:collapse;font-size:13px"># refresh the crontab file every 10 minutes</span><br><span style="border-collapse:collapse;font-size:13px">0</span>,10,20,30,40,50 * * * * c:\windows\system32\xcopy.exe /y "\\myserver\myshare\APPS\cron\crontab" "c:\windows\system32"<br>

<br># run wpkg.bat at 10pm, midnight, and 2am each day<br>0 22,0,2 * * * c:\windows\system32\cmd.exe /c \\myserver\myshare\<span style="border-collapse:collapse">APPS</span><span style="border-collapse:collapse;font-size:13px">\wpkg\wpkg.bat</span><span style="border-collapse:collapse"></span><br>

<span style="border-collapse:collapse;font-size:13px">-----------------------------------------------------</span></font></span></font></div><div class="gmail_quote"><span style="border-collapse:collapse"><font face="'courier new', monospace"><br>

</font></span></div><div class="gmail_quote">Now this takes care of the scheduled after hours synchronization.  And for ad-hoc installations during business hours, I can just add another line to the crontab file to run wpkg for installing a particular package:</div>

<div class="gmail_quote"><br></div><div class="gmail_quote"><font face="'courier new', monospace">#55 9 * * * cmd.exe /c \\myserver\myshare\apps\wpkg\wpkg.bat urgent-package</font></div><div class="gmail_quote">
<br></div><div class="gmail_quote">All of my workstations will pull down the new copy of the crontab file within 10 minutes, and then they will run wpkg at 9:55 AM in this case to install "urgent-package".  After that time has passed, I can remove the line from the crontab file so that it doesn't run everyday after that.</div>

<div class="gmail_quote"><br></div><div class="gmail_quote">Of course, I also use beyondexe or psexec sometimes if I just have a few workstations to work with.</div><div class="gmail_quote"><br></div><div class="gmail_quote">

By the way, I like CRON better than scheduled tasks because it's much easier to copy out a new crontab file than to modify the scheduled task(s).  I also remember having some issues with the scheduled tasks not running reliably.</div>

<div class="gmail_quote"><div class="im"><div><font face="'courier new', monospace"><span style="border-collapse:collapse"><br></span></font></div><div><font face="'courier new', monospace"><span style="border-collapse:collapse"><br>

</span></font></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">If I need to use scheduled tasks, why would I run a service wich will in return run a script  whereas I can run that script directly ?</blockquote>

<div><br></div></div><div>At one point I installed a "custom" wpkg service, but I abandoned that when I implemented cron.  The only advantage of the service is that I used setacl.exe to modify the permissions of the service so that limited users could start and stop it.</div>
<div class="im">
<div> </div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">- when the scheduled tasked is about to run wpkg, I would like it to wait for some random time between 1 and 30 minutes for instance so that the network is not overloaded. (I suppose this part will need little modifications of the wpkg.js script itself but seems to be a quite easy one)<br>

</blockquote><div><br></div></div><div>I've thought of that before, too, and I think I may modify my wpkg.bat file as follows (note the "set /a delay" line:</div><div><br></div><div><font face="'courier new', monospace">wpkg.bat</font></div>

<div><b><span style="font-weight:normal"><font face="'courier new', monospace">---------------------------------------------------------</font></span></b></div>
<div><div><font face="'courier new', monospace">@echo off</font></div><div><font face="'courier new', monospace"><br></font></div><div><font face="'courier new', monospace">set WPKGROOT=%~dp0</font></div>

<div><font face="'courier new', monospace">CALL "%~dp0setServer.bat"</font></div><div><font face="'courier new', monospace">set SOFTWARE=\\%SERVER%\software</font></div>
<div><font face="'courier new', monospace"><br></font></div><div><font face="'courier new', monospace">IF NOT EXIST %SOFTWARE% EXIT /B 1</font></div><div><font face="'courier new', monospace"><br>

</font></div><div><font face="'courier new', monospace">c:\windows\system32\msiexec.exe /unreg</font></div><div><font face="'courier new', monospace"><br></font></div>
<div><font face="'courier new', monospace">c:\windows\system32\msiexec.exe /regserver</font></div><div><font face="'courier new', monospace"><br></font></div>
<div><font face="'courier new', monospace">IF EXIST c:\windows\system32\wpkg.xml DEL /Q /F c:\windows\system32\wpkg.xml</font></div><div><font face="'courier new', monospace"><br>
</font></div><div><font face="'courier new', monospace">set PATH=c:\windows;c:\windows\system32;c:\windows\system32\wbem;%WPKGROOT%\tools;%PATH%</font></div><div><font face="'courier new', monospace"><br>

</font></div><div><font face="'courier new', monospace">:: random number of seconds between 1 and 1800 (30 minutes)</font></div><div><font face="'courier new', monospace">set /a delay=%random%%1800+1</font></div>

<div><font face="'courier new', monospace"><br></font></div><div><font face="'courier new', monospace">:: sleep.exe from gnuwin32</font></div><div><font face="'courier new', monospace">%WPKGROOT%\tools\sleep.exe %delay%</font></div>

<div><font face="'courier new', monospace"><br></font></div><div><font face="'courier new', monospace">IF [%1]==[] (</font></div><div><font face="'courier new', monospace">    c:\windows\system32\cscript.exe //nologo /E:JScript %WPKGROOT%\wpkg.js /synchronize /noremove /quiet /nonotify /sendStatus /logLevel:23 /log_file_path:\\myserver\work\log\wpkg /logfilePattern:[HOSTNAME]-[YYYY][MM][DD]-[hh][mm].log</font></div>

<div><font face="'courier new', monospace">) ELSE (</font></div><div><font face="'courier new', monospace">    IF [%2]==[force] (</font></div><div><font face="'courier new', monospace">        c:\windows\system32\cscript.exe //nologo /E:JScript %WPKGROOT%\wpkg.js /forceinstall /install:%1 /noremove /quiet /nonotify /sendStatus /logLevel:23 /log_file_path:\\myserver\work\log\wpkg /logfilePattern:[HOSTNAME]-[YYYY][MM][DD]-[hh][mm].log</font></div>

<div><font face="'courier new', monospace">    ) ELSE (</font></div><div><font face="'courier new', monospace">        c:\windows\system32\cscript.exe //nologo /E:JScript %WPKGROOT%\wpkg.js /install:%1 /noremove /quiet /nonotify /sendStatus /logLevel:23 /log_file_path:\\myserver\work\log\wpkg /logfilePattern:[HOSTNAME]-[YYYY][MM][DD]-[hh][mm].log</font></div>

<div><font face="'courier new', monospace">    )</font></div><div><font face="'courier new', monospace">)</font></div><div><font face="'courier new', monospace"><br>
</font></div><div><font face="'courier new', monospace">set year=%date:~10,4%</font></div><div><font face="'courier new', monospace">set month=%date:~4,2%</font></div>
<div><font face="'courier new', monospace">set day=%date:~7,2%</font></div><div><font face="'courier new', monospace">set tm=%time:~0,8%</font></div><div><font face="'courier new', monospace">set tm=%tm::=-%</font></div>

<div><font face="'courier new', monospace">set tm=%tm: =%</font></div><div><font face="'courier new', monospace"><br></font></div><div><font face="'courier new', monospace">IF EXIST c:\windows\system32\wpkg.xml RENAME c:\windows\system32\wpkg.xml wpkg-%year%-%month%-%day%-%tm%.xml</font></div>

</div><div><font face="'courier new', monospace">---------------------------------------------------------</font></div><div><br></div><div>Hope this helps,</div><div><br></div><div>Troy</div>
<div><br></div></div>
</div><br>