Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Show status of all fail2ban jails at once
#!/bin/bash
JAILS=`fail2ban-client status | grep "Jail list" | sed -E 's/^[^:]+:[ \t]+//' | sed 's/,//g'`
for JAIL in $JAILS
do
fail2ban-client status $JAIL
done
@artfulrobot

This comment has been minimized.

Copy link

@artfulrobot artfulrobot commented Oct 19, 2014

Thanks! can't believe there isn't a fail2ban-client status --all command!

@mattgorecki

This comment has been minimized.

Copy link

@mattgorecki mattgorecki commented Dec 19, 2016

Excellent! It was -e for me on Centos 6.

@xrobin

This comment has been minimized.

Copy link

@xrobin xrobin commented Jan 19, 2017

Great!
On a SLES box I had to use lowercase -e as well, and escape the + signs in the regex

JAILS=`fail2ban-client status | grep "Jail list" | sed -e 's/^[^:]\+:[ \t]\+//' | sed 's/,//g'`
@caic

This comment has been minimized.

Copy link

@caic caic commented Jan 31, 2017

Thank you! It works on Ubuntu 16.04.

@acosonic

This comment has been minimized.

Copy link

@acosonic acosonic commented Feb 22, 2017

Thank you! Also confirming works on Ubuntu 16.04

@maravedi

This comment has been minimized.

Copy link

@maravedi maravedi commented Mar 8, 2017

This is perfect 👍

@ahmadawais

This comment has been minimized.

Copy link

@ahmadawais ahmadawais commented Apr 24, 2017

@shlublu

This comment has been minimized.

Copy link

@shlublu shlublu commented Jul 6, 2017

It has been said already, but many thanks (Ubuntu 16.04)! :)

@kofran

This comment has been minimized.

Copy link

@kofran kofran commented Aug 16, 2017

Thanks so much

@welrbraga

This comment has been minimized.

Copy link

@welrbraga welrbraga commented Dec 7, 2017

Why make it easy if you can do hard? :-)

fail2ban-client status|awk -F: '/Jail list:/ { split($2,jail,",") ; for (i in jail) { gsub(/[\t ]/,"",jail[i]); system("fail2ban-client status "jail[i]); }; }'

@joergludwig

This comment has been minimized.

Copy link

@joergludwig joergludwig commented Dec 20, 2017

Shorter version:
fail2ban-client status | sed -n 's/,//g;s/.*Jail list://p' | xargs -n1 fail2ban-client status

@Fieel

This comment has been minimized.

Copy link

@Fieel Fieel commented Jan 17, 2018

Nice! Will use this script in my server, ty again <3

@VA2PE

This comment has been minimized.

Copy link

@VA2PE VA2PE commented Feb 9, 2018

Thanks, works well on CentOS 7.

@vkostyuk

This comment has been minimized.

Copy link

@vkostyuk vkostyuk commented Aug 8, 2018

Nice. Needs sudo, so sudo sh -c "fail2ban-client status | sed -n 's/,//g;s/.*Jail list://p' | xargs -n1 fail2ban-client status"

@placecodex

This comment has been minimized.

Copy link

@placecodex placecodex commented Sep 2, 2018

1# sudo apt-get remove fail2ban : remove the packet
2# sudo rm -rf fail2ban : delete fail2ban folder
3# re install again

@stefan1959

This comment has been minimized.

Copy link

@stefan1959 stefan1959 commented Jul 26, 2019

doesn't ipset list do this?

@kamermans

This comment has been minimized.

Copy link
Owner Author

@kamermans kamermans commented Jul 28, 2019

@stefan1959 I don't know, although this post was over 5 years ago, so things have probably changed!

@kangarooo

This comment has been minimized.

Copy link

@kangarooo kangarooo commented Mar 12, 2020

Thx

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.