- Products
- Learn
- Local User Groups
- Partners
- More
The Great Exposure Reset
24 February 2026 @ 5pm CET / 11am EST
AI Security Masters E4:
Introducing Cyata - Securing the Agenic AI Era
AI Security Masters E3:
AI-Generated Malware
CheckMates Go:
CheckMates Fest
This one-liner executes a management API query for successful tasks from the last 30 days, extracts the task name, status, and last modification time from the JSON output, converts the timestamp into a readable date and time format (YYYY-MM-DD HH:MM), and prints the results in aligned columns with fixed widths for better readability.
For example, it shows:
When the policy was installed
When the SMS database was installed
When signature updates were performed
And many other operational security-related tasks
mgmt_cli -r true show tasks status "successful" from-date "$(date -u -d '30 days ago' +%Y-%m-%dT%H:%M:%S)" --format json | jq -r '.tasks[] | . as $t | ($t["meta-info"]["last-modify-time"]["iso-8601"] | split("T")) as $d | "\($t["task-name"])\t\($t.status)\t\($d[0]) \($d[1][0:5])"' | awk -F'\t' '{ printf "%-80s %-20s %-20s\n", $1, $2, $3 }'
This one-liner executes a management API query for successful tasks from the last 30 days, extracts the task name, status, and last modification time from the JSON output, converts the timestamp into a readable date and time format (YYYY-MM-DD HH:MM), and prints the results in aligned columns with fixed widths for better readability.
For example, it shows:
When the policy was installed
When the SMS database was installed
When signature updates were performed
nice one.
unfortunately it Will not work with multi domain. With mdm the oneliner would be much longer and then when working with many cma using -r true is very inefficient.
Edith says:
first to loop over cma
mgmt_cli -r true show domains --format json | jq -r '.objects[] | .name'
Then for each domain
while read domain; do
mgmt_cli -r true show tasks status "successful" from-date "$(date -u -d '30 days ago' +%Y-%m-%dT%H:%M:%S)" -d "$domain" --format json
Could then be something like this
mgmt_cli -r true show domains --format json | jq -r '.objects[] | .name' | while read domain; do
mgmt_cli -r true show tasks status "successful" from-date "$(date -u -d '30 days ago' +%Y-%m-%dT%H:%M:%S)" -d "$domain" --format json |
jq -r --arg dom "$domain" '.tasks[]? | . as $t | ($t["meta-info"]["last-modify-time"]["iso-8601"] | split("T")) as $d | "\($dom)\t\($t["task-name"])\t\($t.status)\t\($d[0]) \($d[1][0:5])"'
done | awk -F'\t' '{ printf "%-20s %-80s %-20s %-20s\n", $1, $2, $3, $4 }'
nice one.
unfortunately it Will not work with multi domain. With mdm the oneliner would be much longer and then when working with many cma using -r true is very inefficient.
Edith says:
first to loop over cma
mgmt_cli -r true show domains --format json | jq -r '.objects[] | .name'
Then for each domain
while read domain; do
mgmt_cli -r true show tasks status "successful" from-date "$(date -u -d '30 days ago' +%Y-%m-%dT%H:%M:%S)" -d "$
WOW...AMAZING!
************************
[Expert@CP-MANAGEMENT:0]# mgmt_cli -r true show tasks status "successful" from-date "$(date -u -d '30 days ago' +%Y-%m-%dT%H:%M:%S)" --format json | jq -r '.tasks[] | . as $t | ($t["meta-info"]["last-modify-time"]["iso-8601"] | split("T")) as $d | "\($t["task-name"])\t\($t.status)\t\($d[0]) \($d[1][0:5])"' | awk -F'\t' '{ printf "%-80s %-20s %-20s\n", $1, $2, $3 }'
CP-FW-01 - getCores-CMD succeeded 2026-01-27 00:15
CP-FW-01 - getCores-CMD succeeded 2026-01-22 00:15
CP-FW-01 - getCores-CMD succeeded 2026-01-24 00:15
CP-FW-01 - getCores-CMD succeeded 2026-01-23 00:15
CP-FW-01 - getCores-CMD succeeded 2026-01-29 00:15
CP-FW-01 - getCores-CMD succeeded 2026-01-25 00:15
CP-FW-01 - getCores-CMD succeeded 2026-01-26 00:15
CP-FW-01 - getCores-CMD succeeded 2026-01-28 00:15
CP-FW-02 - getCores-CMD succeeded 2026-01-22 00:15
CP-FW-02 - getCores-CMD succeeded 2026-01-25 00:15
CP-FW-02 - getCores-CMD succeeded 2026-01-23 00:15
CP-FW-02 - getCores-CMD succeeded 2026-01-26 00:15
CP-FW-02 - getCores-CMD succeeded 2026-01-27 00:15
CP-FW-02 - getCores-CMD succeeded 2026-01-28 00:15
CP-FW-02 - getCores-CMD succeeded 2026-01-29 00:15
CP-FW-02 - getCores-CMD succeeded 2026-01-24 00:15
CP-GW - getCores-CMD succeeded 2026-01-25 00:15
CP-GW - getCores-CMD succeeded 2026-01-28 00:15
CP-GW - getCores-CMD succeeded 2026-01-29 00:15
CP-GW - getCores-CMD succeeded 2026-01-23 00:15
CP-GW - getCores-CMD succeeded 2026-01-22 00:15
CP-GW - getCores-CMD succeeded 2026-01-24 00:15
CP-GW - getCores-CMD succeeded 2026-01-26 00:15
CP-GW - getCores-CMD succeeded 2026-01-27 00:15
IPS Management Update succeeded 2026-01-28 22:39
Application Control & URL Filtering succeeded 2026-01-29 00:00
IPS Management Update succeeded 2026-01-29 02:39
IPS Management Update succeeded 2026-01-27 10:41
Policy installation - LAB-POLICY-Andy succeeded 2026-01-27 12:33
IPS Management Update succeeded 2026-01-28 20:40
Install Database on CP-MANAGEMENT succeeded 2026-01-27 12:33
IPS Management Update succeeded 2026-01-29 04:39
IPS Management Update succeeded 2026-01-29 06:39
IPS Management Update succeeded 2026-01-27 12:39
IPS Management Update succeeded 2026-01-27 14:39
IPS Management Update succeeded 2026-01-27 16:39
IPS Management Update succeeded 2026-01-27 20:39
IPS Management Update succeeded 2026-01-27 22:39
Application Control & URL Filtering succeeded 2026-01-28 00:00
IPS Management Update succeeded 2026-01-28 00:39
IPS Management Update succeeded 2026-01-28 02:39
IPS Management Update succeeded 2026-01-27 18:40
IPS Management Update succeeded 2026-01-28 04:39
IPS Management Update succeeded 2026-01-28 06:39
IPS Management Update succeeded 2026-01-28 10:39
Install Database on CP-SMARTEVENT succeeded 2026-01-27 12:33
IPS Management Update succeeded 2026-01-28 12:39
IPS Management Update succeeded 2026-01-28 14:39
IPS Management Update succeeded 2026-01-28 16:39
Policy installation - LAB-POLICY-Andy succeeded 2026-01-29 08:08
[Expert@CP-MANAGEMENT:0]#
WOW...AMAZING!
************************
[Expert@CP-MANAGEMENT:0]# mgmt_cli -r true show tasks status "successful" from-date "$(date -u -d '30 days ago' +%Y-%m-%dT%H:%M:%S)" --format json | jq -r '.tasks[] | . as $t | ($t["meta-info"]["last-modify-time"]["iso-8601"] | split("T")) as $d | "\($t["task-name"])\t\($t.status)\t\($d[0]) \($d[1][0:5])"' | awk -F'\t' '{ printf "%-80s %-20s %-20s\n", $1, $2, $3 }'
CP-FW-01 - getCores-CMD succeeded 2026-01-27 00:15
CP-FW-01 - getCores-CMD succee
About CheckMates
Learn Check Point
Advanced Learning
YOU DESERVE THE BEST SECURITY