P.s. Geile Webseite, direkt mal in die Favoriten.Bullet64 hat geschrieben:24.12.2019 11:15:49Mach mal das bash da weg.Code: Alles auswählen
# m h dom mon dow command
Lg
P.s. Geile Webseite, direkt mal in die Favoriten.Bullet64 hat geschrieben:24.12.2019 11:15:49Mach mal das bash da weg.Code: Alles auswählen
# m h dom mon dow command
Du kannst die Zeit ja auf in fuenf Minuten setzen, dann musst du keine 14 Stunden warten. Wenn's klappt, dann setzt du die Zeit auf den korrekten Wert.rodeoric hat geschrieben:24.12.2019 11:20:45hab ich jetzt gemacht, mal schauen ob er um 12 Uhr nachher durchläuft.
Servus,Meillo hat geschrieben:24.12.2019 12:02:02Du kannst die Zeit ja auf in fuenf Minuten setzen, dann musst du keine 14 Stunden warten. Wenn's klappt, dann setzt du die Zeit auf den korrekten Wert.rodeoric hat geschrieben:24.12.2019 11:20:45hab ich jetzt gemacht, mal schauen ob er um 12 Uhr nachher durchläuft.
Btw: Ist dein Script ausfuehrbar? (D.h. hat es `x' bei `ls -l'?)
Sieht so aus, als ob der Cronjob ausgefuehrt (d.h. gestartet) worden ist. Nur das Script scheint nicht (vollstaendig) abgelaufen zu sein.rodeoric hat geschrieben:24.12.2019 12:05:31Nachtrag: Das gibt mir die Proxmox Console aus. Aber sieht nicht so aus als hätte er das gemacht was er machen sollte. Manuell jedoch funktioniert das Script.
Dec 24 12:50:01 hostname CRON[7953]: (root) CMD (/etc/fail2ban/fail2ban-ip-whitelisting.sh)
Noch jemand eine Idee ?
Hallo,Meillo hat geschrieben:24.12.2019 12:57:13Sieht so aus, als ob der Cronjob ausgefuehrt (d.h. gestartet) worden ist. Nur das Script scheint nicht (vollstaendig) abgelaufen zu sein.rodeoric hat geschrieben:24.12.2019 12:05:31Nachtrag: Das gibt mir die Proxmox Console aus. Aber sieht nicht so aus als hätte er das gemacht was er machen sollte. Manuell jedoch funktioniert das Script.
Dec 24 12:50:01 hostname CRON[7953]: (root) CMD (/etc/fail2ban/fail2ban-ip-whitelisting.sh)
Noch jemand eine Idee ?
Hier kommt nun die Mail ins Spiel, die Cron verschickt, wenn der Job Ausgaben oder Fehler erzeugt hat.
Schaue dir also die Mail von root an. (Als User root den Befehl `mail' aufrufen. mit `p$' kannst du dir die letzte Mail anzeigen lassen. Mit `q' kommst du wieder raus.) Dort wird sich vermutlich eine Fehlermeldung finden.
Code: Alles auswählen
#!/bin/bash
wget https://einedomain.de/homeIP.txt /etc/fail2ban/homeIP.txt
sleep 4;
cat /etc/fail2ban/homeIP.txt > /etc/fail2ban/home_ip.txt
sleep 2;
rm -r homeIP.txt
sleep 2;
IPn=`cat /etc/fail2ban/home_ip.txt`
IPo=`cat /etc/fail2ban/home_ip_old.txt`
IPfix="127.0.0.1\ 127.0.0.0\/8\ 10.0.0.0\/8\ 172.16.0.0\/12\ 192.168.0.0\/16\ 123.123.123.123\/24\ 123.123.123.123\ 123.123.123.123\ 123.123.123.123\ 123.123.123.123\ 123.123.123.123\ "
CONFIG_FILE=/etc/fail2ban/jail.local
if [ "$IPn" != "$IPo" ]
then
sed -i "s/\(ignoreip *= *\).*/\1$IPfix$IPn/" $CONFIG_FILE
echo $IPn > /etc/fail2ban/home_ip_old.txt
service fail2ban restart
echo "Neue IP gewhitelisted: $IPn Fail2ban neu gestartet"
fi
Code: Alles auswählen
wget https://einedomain.de/homeIP.txt /etc/fail2ban/homeIP.txt
Die "sleeps" sind überflüssig. Was wilst du damit bezwecken? Es braucht keine "Ruhepause" zwischen simplen Operationen wie denen, die du in deinem Skript hast.rodeoric hat geschrieben:24.12.2019 13:14:49Code: Alles auswählen
#!/bin/bash wget https://einedomain.de/homeIP.txt /etc/fail2ban/homeIP.txt sleep 4; cat /etc/fail2ban/homeIP.txt > /etc/fail2ban/home_ip.txt sleep 2; rm -r homeIP.txt sleep 2; IPn=`cat /etc/fail2ban/home_ip.txt` IPo=`cat /etc/fail2ban/home_ip_old.txt` IPfix="127.0.0.1\ 127.0.0.0\/8\ 10.0.0.0\/8\ 172.16.0.0\/12\ 192.168.0.0\/16\ 123.123.123.123\/24\ 123.123.123.123\ 123.123.123.123\ 123.123.123.123\ 123.123.123.123\ 123.123.123.123\ " CONFIG_FILE=/etc/fail2ban/jail.local if [ "$IPn" != "$IPo" ] then sed -i "s/\(ignoreip *= *\).*/\1$IPfix$IPn/" $CONFIG_FILE echo $IPn > /etc/fail2ban/home_ip_old.txt service fail2ban restart echo "Neue IP gewhitelisted: $IPn Fail2ban neu gestartet" fi
Code: Alles auswählen
#!/bin/bash
echo "skript gestartet" >> /root/crondebug.txt
echo "Schritt 1" >> /root/crondebug.txt
wget https://einedomain.de/homeIP.txt /etc/fail2ban/homeIP.txt
echo "Schritt 2" >> /root/crondebug.txt
cat /etc/fail2ban/homeIP.txt > /etc/fail2ban/home_ip.txt
echo "Schritt 3" >> /root/crondebug.txt
rm -r homeIP.txt
echo "Schritt 4" >> /root/crondebug.txt
IPn=`cat /etc/fail2ban/home_ip.txt`
IPo=`cat /etc/fail2ban/home_ip_old.txt`
IPfix="127.0.0.1\ 127.0.0.0\/8\ 10.0.0.0\/8\ 172.16.0.0\/12\ 192.168.0.0\/16\ 123.123.123.123\/24\ 123.123.123.123\ 123.123.123.123\ 123.123.123.123\ 123.123.123.123\ 123.123.123.123\ "
CONFIG_FILE=/etc/fail2ban/jail.local
echo "Schritt 5" >> /root/crondebug.txt
if [ "$IPn" != "$IPo" ]
then
sed -i "s/\(ignoreip *= *\).*/\1$IPfix$IPn/" $CONFIG_FILE
echo $IPn > /etc/fail2ban/home_ip_old.txt
echo "Schritt 6" >> /root/crondebug.txt
service fail2ban restart
echo "Neue IP gewhitelisted: $IPn Fail2ban neu gestartet"
fi
echo "skript beendet" >> /root/crondebug.txt
Hallo,MSfree hat geschrieben:24.12.2019 13:47:53Die "sleeps" sind überflüssig. Was wilst du damit bezwecken? Es braucht keine "Ruhepause" zwischen simplen Operationen wie denen, die du in deinem Skript hast.rodeoric hat geschrieben:24.12.2019 13:14:49Code: Alles auswählen
#!/bin/bash wget https://einedomain.de/homeIP.txt /etc/fail2ban/homeIP.txt sleep 4; cat /etc/fail2ban/homeIP.txt > /etc/fail2ban/home_ip.txt sleep 2; rm -r homeIP.txt sleep 2; IPn=`cat /etc/fail2ban/home_ip.txt` IPo=`cat /etc/fail2ban/home_ip_old.txt` IPfix="127.0.0.1\ 127.0.0.0\/8\ 10.0.0.0\/8\ 172.16.0.0\/12\ 192.168.0.0\/16\ 123.123.123.123\/24\ 123.123.123.123\ 123.123.123.123\ 123.123.123.123\ 123.123.123.123\ 123.123.123.123\ " CONFIG_FILE=/etc/fail2ban/jail.local if [ "$IPn" != "$IPo" ] then sed -i "s/\(ignoreip *= *\).*/\1$IPfix$IPn/" $CONFIG_FILE echo $IPn > /etc/fail2ban/home_ip_old.txt service fail2ban restart echo "Neue IP gewhitelisted: $IPn Fail2ban neu gestartet" fi
Wenn du das Skript debuggen willst, auch, um festzustellen, ob das Ding überhaupt läuft, kannst du echo-Befehle einbauen und in eine Datei speichern.
Das produziert die Datei /root/crondebug.txt, wenn es läuft und schreibt ein paar Marken in die Datei, die Rückschlüsse zuläßt, wie wet das Skript läuft.Code: Alles auswählen
#!/bin/bash echo "skript gestartet" >> /root/crondebug.txt echo "Schritt 1" >> /root/crondebug.txt wget https://einedomain.de/homeIP.txt /etc/fail2ban/homeIP.txt echo "Schritt 2" >> /root/crondebug.txt cat /etc/fail2ban/homeIP.txt > /etc/fail2ban/home_ip.txt echo "Schritt 3" >> /root/crondebug.txt rm -r homeIP.txt echo "Schritt 4" >> /root/crondebug.txt IPn=`cat /etc/fail2ban/home_ip.txt` IPo=`cat /etc/fail2ban/home_ip_old.txt` IPfix="127.0.0.1\ 127.0.0.0\/8\ 10.0.0.0\/8\ 172.16.0.0\/12\ 192.168.0.0\/16\ 123.123.123.123\/24\ 123.123.123.123\ 123.123.123.123\ 123.123.123.123\ 123.123.123.123\ 123.123.123.123\ " CONFIG_FILE=/etc/fail2ban/jail.local echo "Schritt 5" >> /root/crondebug.txt if [ "$IPn" != "$IPo" ] then sed -i "s/\(ignoreip *= *\).*/\1$IPfix$IPn/" $CONFIG_FILE echo $IPn > /etc/fail2ban/home_ip_old.txt echo "Schritt 6" >> /root/crondebug.txt service fail2ban restart echo "Neue IP gewhitelisted: $IPn Fail2ban neu gestartet" fi echo "skript beendet" >> /root/crondebug.txt
Code: Alles auswählen
skript gestartet
Schritt 1
Schritt 2
Schritt 3
Schritt 4
Schritt 5
Schritt 6
skript beendet
Code: Alles auswählen
skript gestartet
Schritt 1
Schritt 2
Schritt 3
Schritt 4
Schritt 5
skript beendet
Warum denn nicht?
Code: Alles auswählen
wget https://einedomain.de/homeIP.txt /etc/fail2ban/homeIP.txt
Code: Alles auswählen
cat /etc/fail2ban/homeIP.txt > /etc/fail2ban/home_ip.txt
Code: Alles auswählen
mv /etc/fail2ban/homeIP.txt /etc/fail2ban/home_ip.txt
Code: Alles auswählen
rm -r homeIP.txt
Korrekt, es liest die Datei von meinem Webspace mit dem Namen "homeIP.txt" und sichert diese auf dem Server unter "homeIP.txt"liest irgendwas.
Verstehe zwar nicht ganz was Du damit meinst aber es ruft die gespeicherte Datei auf und legt diese in einer neuen Datei ab.wollte du hier nicht
Ich dachte move ändert einfach nur den Namen, denn die alte Datei ist ja dann weg und unter dem neuen Namen aufrufbar. Sehe da keinen Fehler.aufrufen, um die Datei umzubenennen?
Das hört sich schlüssig an, der absolute Pfad fehlt, gebe ich Dir recht und das habe ich übersehen.was vom cron ausgeführt ohnehin nicht funkioniert, weil du die Datei im aktuellen Arbeitverzeichnis suchst (absoluter Pfad fehlt). Und in welchem Arbeitverzeichnis cron arbeitet, weill ich garnicht ergründen müssen.
Das ist ebenfalls korrekt, ich mache immer vor dem testen beide Dateien leer da es sonst nicht funktioniert, verstehe ich auch und wurde beim testen immer so gemacht.Mit anderen Worten, das if wird nicht abgearbeitet, weil IPn und IPo nicht unterschiedlich sind.
Ja, das ist Quasi das Dokument in dem die aktuelle IP so zu sagen drinnen liegt, beim nächsten Run sollte er eigentlich die neue mit dem Dokument der alten abgleichen, sind diese identisch muss er weder etwas in jail.local hineinschreiben und auch den "service fail2ban restart" nicht ausführen, wozu auch wenn es keine Änderung gab.Zu guter letzt willst du den alten Zustand in /etc/fail2ban/home_ip_old.txt sichern, was ausserhalb des ifs stattfinden sollte.
Das ist auch eine gute Idee so.rodeoric hat geschrieben:25.12.2019 18:39:15Das es sicher hier auch andere Wege gibt die zum Erfolg führen, ist mir klar. Darum ging es doch aber nicht, ich habe gebastelt, es funktioniert manuell und den Fehler wollte ich hier mit euch gemeinsam suchen.
Hallo Meillo,Meillo hat geschrieben:25.12.2019 18:57:51Das ist auch eine gute Idee so.rodeoric hat geschrieben:25.12.2019 18:39:15Das es sicher hier auch andere Wege gibt die zum Erfolg führen, ist mir klar. Darum ging es doch aber nicht, ich habe gebastelt, es funktioniert manuell und den Fehler wollte ich hier mit euch gemeinsam suchen.
Uns faellt es manchmal schwer, uns in Scripte einzulesen, teilweise sehr anders sind als wir sie schreiben wuerden oder ueberhaupt wie wir das Problem angehen wuerden. Wenn es dann noch ein Problem ist, dass wir nicht selber bei uns nachstellen und testen koennen, wird es noch schwieriger zu helfen. Dass wir uns hier doch recht schwer tun, zu helfen, liegt einfach an der Situation. Dabei bist du freundlich, willst dazulernen und reagierst schnell, was schonmal eine tolle Ausgangsbasis ist. Vielleicht musst du hier eher Geduld mit uns haben als wir mit dir.
... vielleicht findet jemand hier mal die Zeit und Lust eine Version des Scripts zu schreiben in der Art wie man es selber machen wuerde, als Vergleich. Das koennte die Diskussion zusaetzlich befruchten.
Interessant wird's eh am Ende, wenn das Problem geloest ist und wir uns anschauen koennen, wo das Problem lag, welcher Art es war, und uns dann ueberlegen koennen, wie man diese Art von Problem zukuenftig vermeidet.
Also, nur weiter hier. Der Thread ist wertvoll.
Sorry, mein Post war zwischen Mittagessen und Weihnachtsgans etwas dahingeschludert.rodeoric hat geschrieben:25.12.2019 18:39:15Verstehe zwar nicht ganz was Du damit meinst aber es ruft die gespeicherte Datei auf und legt diese in einer neuen Datei ab.
So hatte ich deine Idee auch verstanden. Allerdings sollte man die old-Datei in jedem Fall erzeugen und nicht nur, wenn das Skript in das if verzeigt. Sonst gibt es das old ggfls. nichtJa, das ist Quasi das Dokument in dem die aktuelle IP so zu sagen drinnen liegt, beim nächsten Run sollte er eigentlich die neue mit dem Dokument der alten abgleichen, sind diese identisch muss er weder etwas in jail.local hineinschreiben und auch den "service fail2ban restart" nicht ausführen, wozu auch wenn es keine Änderung gab.Zu guter letzt willst du den alten Zustand in /etc/fail2ban/home_ip_old.txt sichern, was ausserhalb des ifs stattfinden sollte.
Hallöle,MSfree hat geschrieben:25.12.2019 20:23:12Sorry, mein Post war zwischen Mittagessen und Weihnachtsgans etwas dahingeschludert.rodeoric hat geschrieben:25.12.2019 18:39:15Verstehe zwar nicht ganz was Du damit meinst aber es ruft die gespeicherte Datei auf und legt diese in einer neuen Datei ab.
Ich wollte sagen, daß du eine Datei mit wget holst, mit cat eine Kopie anlegst und dann das Original mit rm löschst. Das kann man auch einfacher haben, indem man die Datei mit mv umbenennt.So hatte ich deine Idee auch verstanden. Allerdings sollte man die old-Datei in jedem Fall erzeugen und nicht nur, wenn das Skript in das if verzeigt. Sonst gibt es das old ggfls. nichtJa, das ist Quasi das Dokument in dem die aktuelle IP so zu sagen drinnen liegt, beim nächsten Run sollte er eigentlich die neue mit dem Dokument der alten abgleichen, sind diese identisch muss er weder etwas in jail.local hineinschreiben und auch den "service fail2ban restart" nicht ausführen, wozu auch wenn es keine Änderung gab.Zu guter letzt willst du den alten Zustand in /etc/fail2ban/home_ip_old.txt sichern, was ausserhalb des ifs stattfinden sollte.
Code: Alles auswählen
#!/bin/bash
rm -r /etc/fail2ban/home_ip.txt
wget https://eine-domain.de/homeIP.txt
mv /root/homeIP.txt /etc/fail2ban/home_ip.txt
IPn=`cat /etc/fail2ban/home_ip.txt`
IPo=`cat /etc/fail2ban/home_ip_old.txt`
IPfix="127.0.0.1\ 127.0.0.0\/8\ 10.0.0.0\/8\ 172.16.0.0\/12\ 192.168.0.0\/16\ "
CONFIG_FILE=/etc/fail2ban/jail.local
if [ "$IPn" != "$IPo" ]
then
sed -i "s/\(ignoreip *= *\).*/\1$IPfix$IPn/" $CONFIG_FILE
echo $IPn > /etc/fail2ban/home_ip_old.txt
/etc/init.d/fail2ban restart
echo "Neue IP gewhitelisted: $IPn Fail2ban neu gestartet"
fi
Code: Alles auswählen
* 12 * * * bash /etc/fail2ban/fail2ban-ip-whitelisting.sh
So laeuft der Job von 12:00 bis 12:59 jede Minute und sonst nicht.rodeoric hat geschrieben:25.12.2019 21:20:47Crontab sieht wie folgt aus und sollte nun aller 12 Stunden starten:Code: Alles auswählen
* 12 * * * bash /etc/fail2ban/fail2ban-ip-whitelisting.sh
Code: Alles auswählen
0 12,24 * * * ...
Code: Alles auswählen
#!/bin/bash
new=/etc/fail2ban/home_ip.txt
old=/etc/fail2ban/home_ip_old.txt
config_file=/etc/fail2ban/jail.local
IPfix="127.0.0.1\ 127.0.0.0\/8\ 10.0.0.0\/8\ 172.16.0.0\/12\ 192.168.0.0\/16\ "
wget -O "$new" https://eine-domain.de/homeIP.txt
if cmp -s "$new" "$old"; then
exit
fi
mv "$new" "$old"
sed -i "s/\(ignoreip *= *\).*/\1$IPfix`cat $new`/" "$config_file"
/etc/init.d/fail2ban restart
echo "Neue IP gewhitelisted: `cat $new` Fail2ban neu gestartet"
Code: Alles auswählen
echo `date` `cat "$new"` >>/var/log/home_ip.log
Hallo,Meillo hat geschrieben:25.12.2019 22:50:10Hier eine Ueberarbeitung des Scripts in Richtung der Art, wie ich es schreiben wuerde:
Den sed-Befehl habe ich nicht umgebaut, weil ich die genaue Syntax von $config_file nicht kenne. (Ich wuerde versuchen IPfix drin zu lassen und nur den Rest der Zeile zu aendern ... oder mal schauen, ob die Config sowas wie `+=' unterstuetzt, damit ich es in zwei Zeilen aufteilen kann ... oder eine separate Datei unter /etc/fail2ban anlegen, mit dem Ziel, dass manuelle Werte und automatisch geaenderte Werte klar voneinander getrennt sind.)Code: Alles auswählen
#!/bin/bash new=/etc/fail2ban/home_ip.txt old=/etc/fail2ban/home_ip_old.txt config_file=/etc/fail2ban/jail.local IPfix="127.0.0.1\ 127.0.0.0\/8\ 10.0.0.0\/8\ 172.16.0.0\/12\ 192.168.0.0\/16\ " wget -O "$new" https://eine-domain.de/homeIP.txt if cmp -s "$new" "$old"; then exit fi mv "$new" "$old" sed -i "s/\(ignoreip *= *\).*/\1$IPfix`cat $new`/" "$config_file" /etc/init.d/fail2ban restart echo "Neue IP gewhitelisted: `cat $new` Fail2ban neu gestartet"
Die Dateien wuerde ich persoenlich anders nennen, weil Dateiendungen auf Unix egal sind. Old waere bei mir eher "$new.backup", oder ich wuerde gleich ein Logfile anlegen:Die Ausgabe am Ende wuerde ich nur drin lassen, wenn ich die bei jeder Aenderung per Mail bekommen will. Das kann Sinn machen, wenn es selten ist oder ich die Info brauche, sonst wuerde ich sie her rausnehmen.Code: Alles auswählen
echo `date` `cat "$new"` >>/var/log/home_ip.log
Soviel von mir an dieser Stelle mal an Input.
Was meinst Du damit genau ?Ein explizites `cd' in ein definiertes Verzeichnis am Anfang waere gut. (Auf den ersten Blick scheint `cd /root' korrekt zu sein.) Derzeit gehst du naemlich nur davon aus, dass sowohl deine manuellen Aufrufe als auch Cron das Script schon aus dem richtigen Verzeichnis aufrufen werden. Besser du stellst das sicher.
Code: Alles auswählen
mv cd /root/homeIP.txt /etc/fail2ban/home_ip.txt
Ich wollte eigentlich das mein Script nur um 12:00 Uhr Mittags ausgeführt wird, das reicht voll und ganz. Wie müsste der Command dann aussehen ?D.h. um 12:00 und um 24:00.
Code: Alles auswählen
* 12,24 * * * bash /etc/fail2ban/fail2ban-ip-whitelisting.sh
Hab ich mal rausgenommen, das ist wohl durch das etliche mal hin und herprobieren stehen gebliebenBtw: Da dein Script ein Shebang hat ist das `bash' im Cronjob-Aufruf nicht noetig ... und sorgt bei zukuenftigen Umbauten des Scripts moeglicherweise fuer Fehler oder Irritationen.
Die finde ich aktuell nicht in meinem Script. Vielleicht wieder der Wald und die Bäumeecho `date` `cat "$new"` >>/var/log/home_ip.log
Kann ich mir vorstellen.
Ich meine, dass manche deiner Dateioperationen im aktuellen Verzeichnis arbeiten, z.B. legt wget die heruntergeladene Datei dorthin. Spaeter machst du dann den mv von /root ... was bedeutet, dass sich wget in /root befunden haben muss. Diese Information ist aber nirgends explizit abgelegt oder gesichert. Es ist mehr zufaellig so, dass alles zusammen passt. Was ich mir vorstelle ist diese Zeile irgendwo am Anfang des Scripts:Was meinst Du damit genau ?Ein explizites `cd' in ein definiertes Verzeichnis am Anfang waere gut. (Auf den ersten Blick scheint `cd /root' korrekt zu sein.) Derzeit gehst du naemlich nur davon aus, dass sowohl deine manuellen Aufrufe als auch Cron das Script schon aus dem richtigen Verzeichnis aufrufen werden. Besser du stellst das sicher.
Code: Alles auswählen
cd /root
Das geht so nicht. (Dieser Befehl wuerde die Datei `cd' im aktuellen Verzeichnis und die Datei `/root/homeIP.txt' beide in das Zielverzeichnis `/etc/fail2ban/home_ip.txt' verschieben. Da das Zielverzeichnis aber kein Verzeichnis ist, sondern eine Datei, wird der Befehl fehlschlagen. Zudem kaeme eine Fehlermeldung, dass im aktuellen Arbeitsverzeichnis keine Datei `cd' zu finden ist.) Du brauchst zwei Befehle, einmal `cd' und einmal `mv' ... wobei das cd fuer diesen mv-Befehl nicht noetig ist, weil er ja nur absolute Pfade enthaelt. Der wget-Befehl ist derjenige, der die heruntergeladene Datei ins aktuelle Verzeichnis legt.Code: Alles auswählen
mv cd /root/homeIP.txt /etc/fail2ban/home_ip.txt
Ich wollte eigentlich das mein Script nur um 12:00 Uhr Mittags ausgeführt wird, das reicht voll und ganz. Wie müsste der Command dann aussehen ?D.h. um 12:00 und um 24:00.
Code: Alles auswählen
0 12 * * * ...
Oh, es muss ``12,0'' heissen.Denn wenn ichschreibe dann sagt er mit "Bad Hour, Errors in Crontab".Code: Alles auswählen
* 12,24 * * * bash /etc/fail2ban/fail2ban-ip-whitelisting.sh
Du kannst es nicht finden. Wenn du meinen Post (bei Tageslicht) nochmal in Ruhe liest, wirst du sehen, dass das eine Idee ist, wie *ich* ein Logging fuer die vorherigen IP-Adressen einrichten wuerde ... statt der Old-Datei und mit Historie.Die finde ich aktuell nicht in meinem Script. Vielleicht wieder der Wald und die Bäumeecho `date` `cat "$new"` >>/var/log/home_ip.log
Code: Alles auswählen
#!/bin/bash
myip=/etc/fail2ban/home_ip.txt
log=/var/log/home_ip.log
config_file=/etc/fail2ban/jail.local
IPfix="127.0.0.1\ 127.0.0.0\/8\ 10.0.0.0\/8\ 172.16.0.0\/12\ 192.168.0.0\/16\ "
ip=`wget -O - https://eine-domain.de/homeIP.txt`
if [ "$ip" = `cat "$myip"` ]; then
exit
fi
echo "$ip" >"$myip"
echo "`date +%F\ %H:%M:%S` $ip" >>"$log"
sed -i "s/\(ignoreip *= *\).*/\1$IPfix$ip/" "$config_file"
/etc/init.d/fail2ban restart
echo "Neue IP gewhitelisted: $ip; Fail2ban neu gestartet"
Klar, kein Problem.rodeoric hat geschrieben:26.12.2019 17:25:11auch hier nochmal vielen Dank. Nur dazu brauch ich Ruhe und das wird jetzt knapp zwischen den Jahren.
Habe ich oben schon getan.Vielleicht schaust nochmal kurz über den Crontab drüber, den hätte ich gern um 12 Uhr Mittags einmal gestartet,
Code: Alles auswählen
0 12 * * * ...
Nur kein Stress!dann wäre es erstmal so das es läuft und alles weitere nach und nach wenn Zeit ist.
* 12 * * * bash /etc/fail2ban/fail2ban-ip-whitelisting.sh
Ich möchte ja nicht das er minütlich ausgeführt wird sondern eigentlich nur einmal um 12 Uhr MittagSo laeuft der Job von 12:00 bis 12:59 jede Minute und sonst nicht.
Vielleicht reden wir da gerade aneinander vorbei, aber ich verstehe von 12:00 Uhr - 12:59 Uhr das er dann wirklich um die 59 mal ausgeführt wird, ist das so korrekt ?* 12 * * * bash /etc/fail2ban/fail2ban-ip-whitelisting.sh
Danke,