Scripting – Check SMB Share

SMB Check

Dieses Script überprüft die Funktionalität einer SMB Freigabe. Es prüft ob ein Login per übergebenen Username und Passwort erfolgreich ist. Weiterhin kann das Script über Parameter auch die SMB Freigabe auflisten.

Allgemeine Information

Das Script findet ihr am Ende des Artikels. Es wurde von Fabian Meier und Ullrich Weichert erstellt.

Usage

 ./check_smb -h

Purpose of check_smb:
=====================
Checking the given SMB target.
This script shows if the given SMB target is online. It checks this by login into the share.

usage: 
        -h|--help
                Print this help...
        -v|--version
                Prints some releaseinfos...
        -u|--user
                Specify a user.
        -p|--password
                Specify the login password.
        -W|--workgroup
                Specify a workgroup aka domain.
        -d|--debug
                Specify SMB debuglevel(default 0).
        -H|--host
                S<a href="https://www.weichert.it/wp-content/uploads/2017/06/check_smb.zip">check_smb</a>pecify the SMB server.
        -V|--verbose
                Fancy output - not just numbers...
        -T|--path
                SMB target to check...
        -b|--batch
                Boring Output for monitoring systems...:(
                0 = Everything is ok!
                1 = Something went terribly wrong!

Examples

Einfacher lesbarer Check

./check_smb -H localhost -u test -p PASSWORD -W Arbeitsgruppe -T Freigabe 

Ausgabe:

## IF OK 
OK: Connected to host localhost and SMB directory Freigabe.

## IF not OK 
CRITICAL: Can't open SMB directory. 

Check mit erweitertem Output

./check_smb -H localhost -u test -p PASSWORD -W Arbeitsgruppe -T Freigabe -V

Ausgabe:

## IF OK OK: Connected to host localhost and SMB directory Freigabe."
List of Files: ========== 
File: . 
File: .. 
File: TestFile.DDD 
Connection to SMB host "localhost" closed. 
## IF not OK 
CRITICAL: Can't open SMB directory. ERROR: No such file or directory

Weitere nützliche Parameter

Für einen Check mit erweitertem SMB Logging kann der Parameter -d N oder --debug N übergeben werden. Statt N eine Zahl zwischen 1 und 10. Der Parameter -b oder --batch sorgt dafür, dass das Script nur 0 oder 1 zurück gibt.

0 = Everything is ok!
1 = Something went terribly wrong!

Requirements

Mandatory parameters

Das Script überprüft die benötigten Parameter selbst und gibt bei fehlenden Parametern eine Warnung aus:

#[... Auszug Fehlermeldeung ...]
ERROR: No User is defined, use parameter -u or --user.
Exiting...

ERROR: ./check_smb - arguments required.

        Mandatory paramater: user, host, password and targetpath.
#[... Auszug Fehlermeldeung ...]

OS Requirements

Das Script benötigt die Standard PERL Bibliotheken. Zusätzlich verwendet es das Perl-Module Filesys-SmbClient. Beim Ausführen des Scriptes überprüft das Script ob die Packete installiert sind und gibt eine Warnung aus, wenn die Abhängigkeiten nicht erfüllt sind. Die Perlmodule können dann über den entsprechenden Paketmanager installiert werden.

RHEL

yum install  perl-Filesys-SmbClient.x86_64
## Neuere RHEL Versionen
dnf install perl-Filesys-SmbClient.x86_64

Debian

apt-get install libfilesys-smbclient-perl

Warnung falls eine Abhängigkeit nicht erfüllt ist.

ERROR: Module "Filesys::SmbClient" is not installed!
Requirements:
        RHEL    perl-Filesys-SmbClient.x86_64
        Deb     libfilesys-smbclient-perl
Exiting...

Download

Hier geht es zum Download des Scriptes „check_smb

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax