Ordnerinhalt ohne Bashscript via ftp-Verbindung löschen möglich ?

Begonnen von TomLee, 10 Januar 2022, 14:53:23

Vorheriges Thema - Nächstes Thema

TomLee

Ich hab das letzte Skript oben um ein Beipiel mit scp ergänzt.

Und nochmal danke für das Skript.
Trotz das ich mir aufgeschrieben habe wie ich das mit dem umstellen auf "Public-/Private-Key" zu machen habe, hab ich es nach mehreren Versuchen nicht hinbekommen  ::), dein Skript hat auf Anhieb geklappt  :P

Wernieman

Ich würde für ein Backup eher rsync verwenden .. aber DAS ist ein anderes Thema ;o)
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

TomLee

Danke für den Hinweis, es ging mir vorgestern aber nur um  Bilder, die vom FHEM-Raspi auf einen anderen Raspi übertragen werden sollen.

TomLee

#123
Zitat von: Otto123 am 13 Dezember 2022, 11:24:24genau genommen ist das an der Stelle kein regExp sondern globbing https://en.wikipedia.org/wiki/Glob_(programming)
Eventuell musst Du dazu etwas bemühen, was das kann, z.B: ls
solo getestet :)
$(ls ${mopt}${bud}/FHEM-$(date +"%Y%m%d")_[0-9]*.tar.gz)
Gruß Otto

Ich frag einfach, bevor ich noch länger Suche, beim überfliegen der Seite bin ich auf die Schnelle nicht weiter gekommen. Wenn statt nur Zahlen, nur kleingeschriebener Text vorkommen kann, wie mach ich das ?

So nicht:

text\.[0-9a-z]*.txt
edit: so dann einfach ?

text\.*.txt

Wernieman

Bröseln wir doch mal auf:
text\.*.txtAlle Spezialfälle:
\. : Mit \ wird der . Maskiert, also .
* ist eine beliebige Anzahl des Voheriegen Zeichen, hier also .
Dann folgt ein ., was ein beliebiges zeichen ist, aber eben nur eins.
Dann folgt txt.

Kurz gesagt würde der Obige RegEx auf folgende Zutreffen:
text..........Xtxt
text.utxt
Es würde aber eben NICHT auf folgendes Zutreffen:
text.txt
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

TomLee

ZitatKurz gesagt würde der Obige RegEx auf folgende Zutreffen:
text..........Xtxt
text.utxt

Die Realität zeigt aber das:
text\.*.txtauf text.123.txt und text.abc.txt matcht.

Ist das von dir berücksichtigt ?
Weil:
* ist eine beliebige Anzahl des Voheriegen Zeichen, hier also .
ist so dann nicht richtig, der Punkt steht dann doch für ein beliebiges Zeichen ?
Oder war das so gemeint ?


text.txt wird nie vorkommen.

Ich meine die Frage wie man es richtig macht bleibt bestehen, vlt. seh ich das morgen früh aber ja wieder anders :P

Wernieman

- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

TomLee

Auch nach einmal drüber schlafen komm ich nicht mit.

Ich verstehe dich bisher so das man es eigentlich so schreiben sollte:

text\..*\.txt
nach text soll genau ein Punkt folgen, dann beliebig viele Zeichen, dann wieder genau ein Punkt, gefolgt von txt

Wernieman

Exakta, das Maskieren macht RegEx immer schlecht lesbar

Bzw: Gibt genügend RegEx Tester im Netz:
https://regex101.com/

- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

TomLee

#129
Es ist aber kein Regulärer Ausdruck, sondern ein Glob-Muster, darum hab ich den Link von Otto bei meiner Frage mit angegeben.

Sowas
text\..*\.txtgeht gar nicht.

Ich hab mir jetzt nur den ersten Absatz nochmal genau durchgelesen.
Wie ich es jetzt verstehe:
. ist ein Punkt, und den muss man gar nicht maskieren.
? ist ein beliebiges Zeichen
* ist ein Platzhalter für einen beliebigen String

Ich behaupte jetzt einfach mal so wäre korrekt:

text.*.txtwas auch einwandfrei klappt.

edit:

oder so wie ich mir das zuerst dachte:
text.[a-z0-9]*.txtklappt auch einwandfrei.

TomLee

Ich bekomms nicht hin, kann mir bitte wer einfach zeigen wie ich ein Python-Script als cronjob nach einem reboot starte, auf das ich mit screen dann später auch zugreifen kann ?

So schonmal nicht:

@reboot sleep 60 && screen -S epaperstation -d -m /usr/bin/python3 /opt/fhem/www/scripts/epaper/tmp/station.py