A tutorial on how to create a Task in the Automation Workshop app that executes the ping command to a server every 30 seconds, and when the server is not reachable, it sends email automatically.
The email body contains output of the ping
command, and optionally output of the tracert
command (traceroute). The task uses a built-in Advanced Task Scheduler and the task execution interval can be easily changed from 30 seconds to any schedule, including options for including and excluding specific times, days, weekdays, etc.
This tutorial also demonstrates how to capture the output of CMD window and send it as an email message. The task can be extended with more than 100+ automated Actions, starting from an alarm sound, and ending with document printing, or operations on remote FTP servers.
Note
The video tutorial and task example above is using the latest features of Automation Workshop, and it is a recommended approach of creating branching in tasks using If Action. Please download it and import into Automation Workshop to start monitoring your server in just a few minutes. However, the text version below is using On Error feature to differentiate a success and failure of the ping command.
Overview
Suppose that you have two servers, and you want to make sure that a connection between servers is always available. We will use the Windows built-in ping command to ping a server every 30 seconds. If the connection goes offline, or the server is not responding to the ping command, we will send an email with output of the ping and tracert (traceroute).
Solution
Use a built-in Advanced Task Scheduler to periodically launch an Action, in this case the Execute Script Action, which is configured to ping the server and send an email to the specified address when not receiving a server reply.
How to ping a server?
How to periodically ping an IP address of the server? The creation of a Task can be divided in three simple parts. First, a new Task has to be created. Second, you will need to add and configure the Task Scheduler Trigger, the function of which is to periodically execute the Task. Third, you will need to set up the Action that will ping the server whenever the Task is triggered by Task Scheduler.
How to create a Task?
Creating a new Task in Automation Workshop is very easy. Open the Automation Workshop Manager by clicking on the Febooti Automation Workshop program icon in the Start menu. Then create a new Task by clicking on the New task button. The Task Wizard will be opened to provide step-by-step assistance.
Add an Advanced Task Scheduler
How to add the Task Scheduler trigger to the Task? Follow these simple steps:
- Go to the Triggers tab (after the Welcome screen). Start adding Triggers to the Task.
- Click the Add… button and a list of available Triggers will be opened.
- Choose the Task Scheduler trigger and click OK. See the Task Scheduler properties.
Configure the Task Scheduler
How to configure the Advanced Task Scheduler trigger to periodically start the Task? Let us suppose that for our goals it is sufficient to ping the server once per every 30 seconds. As you can see, by default Task Scheduler offers to create a Task which is scheduled daily at the same time. What we need is to change schedule type from daily to seconds. Set an appropriate Start date and configure Task Scheduler to Recur every 30 seconds.
If you want to prevent the task from launching on a particular time, days of the week, dates, or months, use the Task Scheduler exceptions to exclude these periods. Click OK and you will see the Task Scheduler trigger appear in the Trigger list of Task Wizard. Click Next to proceed with setting up Actions.
Add an Action
How to add an Action to ping the server periodically? An Action is added in the same way as Trigger, just click the Add… button when in the Action tab of Task Wizard. Automation Workshop does not feature a built-in ping command, however it is very efficient for running external commands. In this case, we will use an Action that can run command line applications. Open Run category, select Run CMD Command Action and click OK. Starting from the v2.0 of Automation Workshop, it is recommended to use Execute Script Action as shown in the demo task and video tutorial above.
Ping the server
How to configure an Action to ping the server periodically? We need to tell Run CMD Command Action to run the PING command to ping the particular IP address.
For the sake of example, let us suppose that the server's IP address is 192.168.1.101
. Write the ping -n 1 192.168.1.101
into a Command line input (on Command tab of Run CMD Command Action).
The -n 1
parameter means that only one data packet will be sent per time to ensure server connectivity. If connection is somewhat unstable, you might want to increase the number of data packets sent each time. Note that you will have to substitute 192.168.1.101
with the actual server IP address (or DNS name if available).
Detect failed pings
How to detect failed ping requests and automatically send error reports? So far the Task is set to ping the server every 30 seconds. However, we also need to set up error reporting which will occur whenever the server fails to respond to the ping request.
When the ping command manages to get through and receives server reply, its errorlevel is set to 0
(which means successful completion). If not, the errorlevel will differ from 0
.
We strongly recommend to not use the errorlevel anymore. It is not reliable for the ping command. Instead use the TTL parameter from the output of the ping command. See the demo task that is included in this article, or view the video tutorial above.
Run CMD Command Action can process returned errorlevels. In this case, we will need to set the option to Treat error levels greater than 0 as error. Which means that anything but completely successful ping will be treated as error. Note that Wait for command to complete or terminate must be selected in order for Run CMD Command to wait for the results of ping command before finishing the Task.
Email reports
How to send an email with an error report when the Action experiences an error? After setting up periodical pinging and treating non-zero (non-success) errorlevels as errors, we need to tell Action what actually to do when experiencing an error.
Switch to the On Error tab of Run CMD Command properties, check the Send email when this Action encounters an error checkbox and provide the email address of sender (From field) and recipient (To field) that will be used when sending error notification email.
Click OK and the Action will be saved. Essentially, the Task is ready. You might want to check other options for additional configuration, if necessary, but normally the Task will become active as soon as created (and begin pinging starting from the date and time specified in the Task Scheduler settings).
Note that during the server downtime, an email will be generated every 30 seconds which can lead to a large amount of sent emails during somewhat longer downtime. Also, in order to maintain the comprehensiveness of the log file when running frequently recurring Tasks, you might consider choosing Log only Task errors and warnings in the Log tab of Task Properties.
Conclusion
This tutorial is an example, how to use the Advanced Fallback Settings to split a task execution flow into two branches. It was a recommended way before Automation Workshop v2.0, when the If Action was not available. From now on, it is recommended to use the If Action, as shown in the demo task and video at the beginning of this tutorial.
The Task described in this tutorial might be insufficient to diagnose a connectivity problem. For more comprehensive approach, you might want to:
- Perform tracert command (traceroute) to server and gateway & router.
- Ping DNS to check whether it is working properly.
- Save the information returned by tracert and ping commands into
report.txt
file for later reviewing. Depending on the situation, executing a media player that plays an audible alarm can also prove really useful.
Help at your fingertips…
If you have any questions, please do not hesitate to contact our support team.