Script Logging
What
For scripts added to FileWave Filesets using the Script view, logging is enabled by default.
When
Each time a Script (as built above) is actioned on a device, a log file is created or added to, with anything that the script outputs. The logs of these Scripts are located in the following directories, within subfolders named after the Fileset ID:
macOS
# ls -al /private/var/log/fwcld/
total 0
drwxrwxrwx 17 root wheel 544 Mar 5 16:01 .
drwxr-xr-x 83 root wheel 2656 Jul 31 08:27 ..
drwxrwxrwx 3 root wheel 96 Aug 1 2023 1
drwxrwxrwx 5 root wheel 160 Sep 25 2023 54231
drwxrwxrwx 6 root wheel 192 Sep 26 2023 54235
drwxrwxrwx 3 root wheel 96 Nov 9 2023 54367
drwxrwxrwx 3 root wheel 96 Nov 9 2023 54368
drwxrwxrwx 3 root wheel 96 Nov 9 2023 54374
drwxrwxrwx 3 root wheel 96 Nov 9 2023 54379
drwxrwxrwx 3 root wheel 96 Nov 10 2023 54384
drwxrwxrwx 3 root wheel 96 Nov 10 2023 54396
drwxrwxrwx 3 root wheel 96 Nov 10 2023 54401
drwxrwxrwx 3 root wheel 96 Nov 10 2023 54406
drwxrwxrwx 3 root wheel 96 Dec 15 2023 54417
drwxrwxrwx 3 root wheel 96 Dec 15 2023 54419
drwxrwxrwx 3 root wheel 96 Dec 15 2023 54421
drwxrwxrwx 3 root wheel 96 Mar 5 16:01 55188
Windows
Example:
macOS example, but the principle is the same for Windows.
Consider this simple shell script that runs a command to output the username that ran the command:
On running the command, the user running the command will be reported. For example, running this locally on a device might reply:
% whoami
sholden
Viewing the log generated by FileWave:
# cat /private/var/log/fwcld/54421/whoami.sh.log
----------------------- HEADER - Date: (Fri Dec 15 2023) - Time: (16:40:21) -----------------------
root
----------------------- FOOTER - Date: (Fri Dec 15 2023) - Time: (16:40:22) - Exit code: (0) -----------------------
The output presents:
Improvement
The Script may or may not provide output, depending upon the command used. However, why not add additional echo commands (or similar) to output extra details to provide more information from the script running.
Here is an example of a Fileset Requirement Script, waiting for confirmation of a Profile to be installed before activating the Fileset:
The script is outputting additional information, showing the ID of the Profile, found or not. On success, exit 0, else exit 1.
Requirement Scripts will retry every 2 minutes, until successful, unless coded otherwise
----------------------- HEADER - Date: (Thu Jul 31 2024) - Time: (11:03:12) -----------------------
Did not find ml1063.local.aa0bd493-960d-4dc0-9631-a3fea189191e.Configuration.aa0bd493-960d-4dc0-9631-a3fea189191e
Did not find ml1063.local.5a57bcb9-7293-4cba-a20b-126eb2660b25.Configuration.5a57bcb9-7293-4cba-a20b-126eb2660b25
----------------------- FOOTER - Date: (Thu Jul 31 2024) - Time: (11:03:12) - Exit code: (1) -----------------------
----------------------- HEADER - Date: (Thu Jul 31 2024) - Time: (11:05:12) -----------------------
Found installed profile: ml1063.local.aa0bd493-960d-4dc0-9631-a3fea189191e.Configuration.aa0bd493-960d-4dc0-9631-a3fea189191e
----------------------- FOOTER - Date: (Thu Jul 31 2024) - Time: (11:05:12) - Exit code: (0) -----------------------
On first attempt, the log shows two Profiles were searched and not found, with the script exiting a value of 1. On second attempt, the first Profile ID is now showing as installed and the script exited with a value of 0.
No Logs
Some scripts ran through FileWave, e.g. Policy Blocker Scripts, do not provide logs, with some mention in the Client Log alone, that the Script ran.
However, it is entirely possible to choose to create a custom log file within a script, for any script, and echo any output desired to provide additional logging.
Consider how the script will grow and how to either overwrite or append appropriately.