2011/1/7 LAPLAUD François <lapl...@sdis72.fr> > Yes indeed, > > Here are my needs : > - a working wpkg ( ;-) ) > - possibility to run wpkg periodically to be able to deploy packages in > background while users are working. >
I use CRON (http://www.kalab.com/freeware/cron/cron.htm) to do this. I prefer these native versions to PyCron since they don't require a Python installation. 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: c:\windows\system32\crons.exe /install c:\windows\system32\sc.exe start CRON And here is an example of the crontab that I use (look out for wrapped lines below): ----------------------------------------------------- # Basic crontab format: # # +---------------- minute (0 - 59) # | +------------- hour (0 - 23) # | | +---------- day of month (1 - 31) # | | | +------- month (1 - 12) # | | | | +---- day of week (0 - 6) (Sunday=0) # | | | | | # * * * * * command to be executed # refresh the crontab file every 10 minutes 0,10,20,30,40,50 * * * * c:\windows\system32\xcopy.exe /y "\\myserver\myshare\APPS\cron\crontab" "c:\windows\system32" # run wpkg.bat at 10pm, midnight, and 2am each day 0 22,0,2 * * * c:\windows\system32\cmd.exe /c \\myserver\myshare\APPS \wpkg\wpkg.bat ----------------------------------------------------- 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: #55 9 * * * cmd.exe /c \\myserver\myshare\apps\wpkg\wpkg.bat urgent-package 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. Of course, I also use beyondexe or psexec sometimes if I just have a few workstations to work with. 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. 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 ? 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. - 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) > 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: wpkg.bat *---------------------------------------------------------* @echo off set WPKGROOT=%~dp0 CALL "%~dp0setServer.bat" set SOFTWARE=\\%SERVER%\software IF NOT EXIST %SOFTWARE% EXIT /B 1 c:\windows\system32\msiexec.exe /unreg c:\windows\system32\msiexec.exe /regserver IF EXIST c:\windows\system32\wpkg.xml DEL /Q /F c:\windows\system32\wpkg.xml set PATH=c:\windows;c:\windows\system32;c:\windows\system32\wbem;%WPKGROOT%\tools;%PATH% :: random number of seconds between 1 and 1800 (30 minutes) set /a delay=%random%%1800+1 :: sleep.exe from gnuwin32 %WPKGROOT%\tools\sleep.exe %delay% IF [%1]==[] ( 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 ) ELSE ( IF [%2]==[force] ( 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 ) ELSE ( 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 ) ) set year=%date:~10,4% set month=%date:~4,2% set day=%date:~7,2% set tm=%time:~0,8% set tm=%tm::=-% set tm=%tm: =% IF EXIST c:\windows\system32\wpkg.xml RENAME c:\windows\system32\wpkg.xml wpkg-%year%-%month%-%day%-%tm%.xml --------------------------------------------------------- Hope this helps, Troy
------------------------------------------------------------------------- wpkg-users mailing list archives >> http://lists.wpkg.org/pipermail/wpkg-users/ _______________________________________________ wpkg-users mailing list wpkg-users@lists.wpkg.org http://lists.wpkg.org/mailman/listinfo/wpkg-users