Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

OS Linux

fwanalog en zegrep

None
5 antwoorden
  • Ik ben fwanalog aan het installeren, dit is niet zo'n probleem, alleen zit ik met het probleem dat er zich geen zegrep op m'n systeem bevindt

    Dus ik dacht.. Die download ik ff, maar nee hoor, nergens te vinden. Nu ik zo rond loop te kijken op zoek naar zegrep lijkt het erop dat het iets van een symbolic link naar grep is, klopt dat en zo ja, hoe maak ik deze aan?

    Of kan ik hem toch ergens downloaden?

    Alvast bedankt!
    Rutger
  • zegrep wordt bij mij (Gentoo) geinstalleerd als onderdeel van gzip.

    Het is een "shellscript wrapper" om grep en gzip heen. Hier volgt het:

    [b:ef9b026108]/bin/zegrep :[/b:ef9b026108]
    [code:1:ef9b026108]#!/bin/sh

    # zgrep – a wrapper around a grep program that decompresses files as needed
    # Adapted from a version sent by Charles Levert <charles@comm.polymtl.ca>

    # Copyright (C) 1998, 2001 Free Software Foundation
    # Copyright (C) 1993 Jean-loup Gailly

    # This program is free software; you can redistribute it and/or modify
    # it under the terms of the GNU General Public License as published by
    # the Free Software Foundation; either version 2, or (at your option)
    # any later version.

    # This program is distributed in the hope that it will be useful,
    # but WITHOUT ANY WARRANTY; without even the implied warranty of
    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    # GNU General Public License for more details.

    # You should have received a copy of the GNU General Public License
    # along with this program; if not, write to the Free Software
    # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
    # 02111-1307, USA.

    PATH="//bin:$PATH"; export PATH

    prog=`echo $0 | sed 's|.*/||'`
    case "$prog" in
    *egrep) grep=${EGREP-egrep} ;;
    *fgrep) grep=${FGREP-fgrep} ;;
    *) grep=${GREP-grep} ;;
    esac

    pat=""
    after_dash_dash=""
    files_with_matches=0
    files_without_matches=0
    no_filename=0
    with_filename=0

    while test $# -ne 0; do
    case "$after_dash_dash$1" in
    –d* | –rec*) echo >&2 "$0: $1: option not supported"; exit 1;;
    –files-with-*) files_with_matches=1;;
    –files-witho*) files_without_matches=1;;
    –no-f*) no_filename=1;;
    –wi*) with_filename=1;;
    –*) ;;
    -*)
    case "$1" in
    -*[dr]*) echo >&2 "$0: $1: option not supported"; exit 1;;
    esac
    case "$1" in
    -*H*) with_filename=1;;
    esac
    case "$1" in
    -*h*) no_filename=1;;
    esac
    case "$1" in
    -*L*) files_without_matches=1;;
    esac
    case "$1" in
    -*l*) files_with_matches=1;;
    esac;;
    esac
    case "$after_dash_dash$1" in
    -[ef]) opt="$opt $1"; shift; pat="$1"
    if test "$grep" = grep; then # grep is buggy with -e on SVR4
    grep=egrep
    fi;;
    -[ABCdm])opt="$opt $1 $2"; shift;;
    –) opt="$opt $1"; after_dash_dash=1;;
    -*) opt="$opt $1";;
    *) if test -z "$pat"; then
    pat="$1"
    else
    break;
    fi;;
    esac
    shift
    done

    if test -z "$pat"; then
    echo "grep through gzip files"
    echo "usage: $prog [grep_options] pattern [files]"
    exit 1
    fi

    if test $# -eq 0; then
    gzip -cdfq | $grep $opt "$pat"
    exit $?
    fi

    res=0
    for i do
    gzip -cdfq "$i" |
    if test $files_with_matches -eq 1; then
    $grep $opt "$pat" > /dev/null && echo $i
    elif test $files_without_matches -eq 1; then
    $grep $opt "$pat" > /dev/null || echo $i
    elif test $with_filename -eq 0 && { test $# -eq 1 || test $no_filename -eq 1; }; then
    $grep $opt "$pat"
    else
    if test $with_filename -eq 1; then
    sed_script="s|^[^:]*:|${i}:|"
    else
    sed_script="s|^|${i}:|"
    fi
    $grep $opt "$pat" | sed "$sed_script"
    fi
    r=$?
    test $res -lt $r && res=$r
    done
    exit $res[/code:1:ef9b026108]
  • Bedankt, het werkt!

    Is er trouwens ook een manier om mijn firewall log gescheiden te houden?

    Nu gaan alle firewall melding zowel naar kern.log als naar sys.log (Standaar LFS systeem). Ik heb liever dat hij ze in een eigen log firewall.log gaat zetten, dit is wat overzichtelijker, en scheelt fwanalog een hoop filterwerk (en dus snelheid)

    Ik neem aan dat ik dit in /etc/syslog.conf moet regelen? Maar hoe?
  • Ik weet niet zoveel van LFS af, maar misschien dat je toch even "man bash" ;) moet intypen om wat scripting mogelijkheden te bekijken. De belangrijkste in jouw geval:

    [code:1:0bc3de0746]

    > redirection teken
    | pipe
    0, 1, 2 STDIN, STDOUT, STDERROR

    [/code:1:0bc3de0746]

    Wat ik bijvoorbeeld wel eens gebruik:

    [code:1:0bc3de0746]
    startx 2>/debug.txt
    [/code:1:0bc3de0746]

    Hiermee wil ik de STDERR van startx hebben (alle foutmeldingen als X opstart) en die schrijf ik naar het bestand debug.txt, zodat ik ze op mijn gemak kan naleen met vi :)

    daarna zou je b.v. kunnen doen

    [code:1:0bc3de0746]
    cat debug.txt | grep ATI
    [/code:1:0bc3de0746]

    Nu gebruik ik voor het commando grep als invoer het bestand "debug.txt", en ik zoek daarin naar de string ATI. (pipe = uitvoer ene bestand / prog koppelen aan invoer andere prog.)

    Nu zal je als het goed is met jouw LFS kennis wel het een en ander om kunnen bouwen en weg kunnen schrijven! ;)

    Succ6
  • De meeste redirects en pipes ken ik wel daar doelde ik ook niet op (maar evengoed bedankt voor je korte uitleg… :wink: )

    Ik meen me echter ook te herinneren dat je in je syslog al een onderscheid kan maken voor iptables meldingen. Momenteel ziet mijn /etc/syslog.con er zo uit:
    [code:1:8a6dd581b5]
    # Begin /etc/syslog.conf

    auth,authpriv.* -/var/log/auth.log
    *.*;auth,authpriv.none -/var/log/sys.log
    daemon.* -/var/log/daemon.log
    kern.* -/var/log/kern.log
    mail.* -/var/log/mail.log
    user.* -/var/log/user.log
    *.emerg *

    # End /etc/syslog.conf
    [/code:1:8a6dd581b5]
    Is hier geen optie aan toe te voegen die dus wegschrijft naar /var/log/firewall.log?

    Maar misschien dat ik het mis heb en is hier geen standaard methode voor, en moet ik geen redirecten…

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.