Some filesystems are critical to a business, such as those used in interfaces. This custom metric group will alert if a filesystem is not mounted.
Create the Bash Script to Check the Filesystem Status
Firstly, we need to create a bash script that takes the filesystem as its input argument and then checks its status. Create the following script called /sbin/checkfilesystemmounted.sh
(owner is root, permissions 755). You may put this script somewhere else if you prefer, but be sure to refer to the correct location later on in this post.
#!/bin/bash
findmnt $1 >/dev/null && echo \{type:integer, name:FileSystemMounted, value:1\} || echo \{type:integer, name:FileSystemMounted, value:0\}
The findmnt
command returns the mount details if the filesystem is mounted. The filesystem is passed as a script argument in variable $1
. If the filesystem is mounted, the script returns integer 1. If the filesystem is not mounted, the script returns integer 0. For example, to check your desired filesystem, execute it like this as root:
/sbin/checkfilesystemmounted.sh /the/filesystem/you/want/to/check
The output will be in JSON format. If the filesystem is mounted, the value will be 1, as follows:
{type:integer, name:FileSystemMounted, value:1}
The name:FileSystemMounted
is the name of the value to be picked up by saphostctrl
, as described next.
Create the Custom Operation for saphostctrl
To load these values into Focused Run, we create a custom operation for saphostctrl
. Create the following custom operations conf file:
/usr/sap/hostctrl/exe/operations.d/checkfilesystemmounted.conf
This contains:
Command: /sbin/checkfilesystemmounted.sh $[FILESYSTEM]
Workdir: /home/sapadm
Description: Check if filesystem is mounted
ResultConverter: flat
Platform: Unix
To test the custom operation, execute the following command:
/usr/sap/hostctrl/exe/saphostctrl -function ExecuteOperation -name checkfilesystemmounted FILESYSTEM=/the/filesystem/you/want/to/check
The result should be as per the following example:
Webmethod returned successfully
Operation ID: 0A02C69098121EDDA68C041B50FE858D
----- Response data ----
description=Check if filesystem is mounted
{type:integer, name:FileSystemMounted, value:1}
exitcode=0
Create the Custom Alert in SAP Focused Run
In Focused Run, we create an alert in a Linux host monitoring template. For example, the alert name is “Interface Filesystem not Mounted”. The Alert should be in Category “Exceptions” and the Severity is up to you. In this case it is 9.

Create the Custom Metric Group in SAP Focused Run
Next, we create the custom Metric Group . A Metric Group allows variants to be created, and each variant corresponds to a filesystem you wish to monitor.
Overview Tab:
- Name: “Interface Filesystem not Mounted”
- Category: Exceptions
- Class: Metric Group
- Data Type: Integer
- Technical Name: INTERFACE_FILESYSTEM_NOT_MOUNTED

Data Collection Tab:
- Data Collector Type: Diagnostic Agent (push)
- Data Collector Name: OS: ExecuteOperation
- Collection Interval: 5 Minutes (depending on the criticality)
- CUSTOM_OPERATION_NAME:
checkfileystemmounted
– This corresponds to the custom operation forsaphostctrl
created earlier - METRIC_NAME:
FileSystemMounted
– This corresponds to the name of the metric in the JSON output by the bash script - RETURNFORMAT: JSON – This is the output format of the bash script

Usage Tab:

Threshold Tab:

As the script returns a numeric value 0 if the filesystem is not mounted, then the threshold will alert if the value is 0.
Assignment Tab
Assign to the custom alert created earlier.

Add Variants
The variable passed to the saphostctrl operation is “FILESYSTEM
”. We can add the rest of the filesystems as individual variants. The format for the operation parameters is as follows:
FILESYSTEM:/the/filesystem/you/want/to/check
For example:

You can enter as many filesystems as you like as separate variants.
Activate Alert
Go to the “Metrics, Events, Alerts Hierarchy” tab, and activate System Monitoring.

Testing the Metric
In a non-Production environment, try to unmount a filesystem, and at most 5 minutes later, there should be an alert produced.