Upload Dayfile

From CumulusWiki
Jump to: navigation, search

Cumulus has the ability to upload files to your webserver at regular intervals, however this is an 'all or nothing' feature -- If Cumulus is set to upload to your website every 10 minutes then every file will be uploaded every 10 minutes.

As your website becomes more advanced you may wish additional data available on the site, and the most common need is the Dayfile.txt produces by Cumulus. This is a useful file summarising conditions each day and is used by many Addons and Tools.

The dayfile.txt file only changes once per day therefore it is extremely inefficient to upload this every 10 minutes, far better to do a once per day upload.

Starting with version 1.9.2, Cumulus now has the ability to invoke a command or external program once a day. This is configured via the Configuration | Internet Options | External Programs dialog box. Whatever is entered in the "Daily" section will be invoked once a day, just after the daily rollover processing is completed.

This option in Cumulus can be used instead of the Windows Task Scheduler (which is detailed below) to invoke a script or program, and may be perferable in many circumstances.


Below are details on how to automate the upload of the dayfile.txt once per day, just after midnight. If your roll over is set to 9/10am you would adjust this to upload just after the roll over. Leave a few minutes at roll over time for Cumulus to complete its work before you upload.

Automation

In order to achieve this, we rely on a few components:

  • A script for uploading (ftp'ing) the file
  • A batch file to run the command to upload
  • (optionally) The Windows Task Scheduler (AT)

The script

Using a good text editor, such as Notepad++ or Notepad (if you must!), copy and paste the following into a blank file:

<user>
<password>
cd <folder>
put c:\cumulus\data\dayfile.txt
quit

Replace:

  • <user> with your ftp login username. This will be the same as the one in Internet Settings in Cumulus Configuration
  • <password> with the ftp password. Again, as per the Cumulus Internet Config
  • <folder> should be as per 'Directory' in Cumulus Internet Config

The 'put' entry should be followed by the full path to dayfile.txt on your Cumulus PC

Save this file as dayfile.ftp in the Cumulus folder of your PC (example, in c:\Cumulus)

The Batch file

Now create a batch file to use this script. Again in your text editor create a new file (File, New?) and paste the following:

ftp -s:c:\cumulus\dayfile.ftp <hostname>

Replace

  • <hostname> with the same setting in your Cumulus Internet Settings
  • c:\cumulus\dayfile.ftp with the full path and filename used when saving the Script file above

Save this file as upload-dayfile.bat in c:\cumulus (or your Cumulus folder if different)


Cumulus settings

On the Internet Settings screen, put c:\cumulus\upload-dayfile.bat in the Daily box. Leave the params empty.

The Windows Task Scheduler (if using this method)

Now we tell Windows how often to run our script.

  • Click Start, Run and type cmd press Return
If you are using Windows 7 you need Admin privileges to set the scheduler. Click Start, All Programs, Accessories. Right Click on 'Command Prompt' and select 'Run as Administrator' You may be asked to confirm this elevation of security privileges (temporarily)
  • A black box (command console) will appear
  • Type, or copy:
at 00:10 /every:M,T,W,Th,F,S,Su "c:\cumulus\upload-dayfile.bat"
Change the end of the command to the location of the Batch file you created above
If your roll-over is 9/10am change 00:10 to 10:10 to run the script every dat at 10:10am rather than 10 minutes pas midnight
  • Press return
  • Type AT and return and you should now see your job listed in the scheduler. Your Job will run every day at the specified time.
  • Close the command window by typing exit or closing the window


There is no notification if the task runs or fails. You need to check the System Event Viewer in the Admin section of the Control Panel for errors.


Running manually

If you wish to run a manual upload, perhaps to test the command is successful, simply run the batch file:

Start, Run, cmd and type c:\cumulus\upload-dayfile.bat

Check your webserver for dayfile.txt using your normal ftp tool

Advanced

For more advanced control over the your uploads consider using the features in Cumulus Toolbox


Possible Issues

The FTP tool being used here is the one which ships with Windows; it is a relatively simply implementation and may not support the requirements of your webserver. There is some useful reading in this forum topic which may help if you have issues.