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

TomLee

Ich weiß es nicht mehr was ich genau gemacht hatte um Fhem-Befehle in der Shell auszuführen, aufgeschrieben hab ich es auch nicht  ::), ich war damals einfach nur froh das es irgendwann nach vielem lesen geklappt hatte.

perl fhem.pl 7072 "backup"erzeugt mir auf einem anderen System jetzt die Meldung:
Can't open perl script "fhem.pl": Datei oder Verzeichnis nicht gefunden
Was ich in Erinnerung hab ist, das es was mit telnet zu tun hat.
sudo apt-get install telnethab ich gemacht und eine telnet-Definition gibt es auch:
define telnetPort telnet 7072 global
Kann mir bitte jemand zeigen was noch fehlt/einzustellen ist , oder verlinken was ich genau zu lesen hab damit ich verstehe was noch fehlt ?



Otto123

#132
Hi,

da fehlt doch schlicht der Pfad? Der User fhem hat manchmal keine komplette Umgebung?
{qx(grep fhem /etc/passwd)}{qx(printenv)}
Was ist damit?
/usr/bin/perl /opt/fhem/fhem.pl 7072 "backup"
Ich meine das ist nutzlos
Zitat von: TomLee am 10 November 2023, 13:50:16Was ich in Erinnerung hab ist, das es was mit telnet zu tun hat.
Code Auswählen Erweitern
sudo apt-get install telnethab ich gemacht und eine telnet-Definition gibt es auch:
Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

TomLee

Zitatda fehlt doch schlicht der Pfad?

ja, mit /usr/bin/perl /opt/fhem/fhem.pl 7072 "backup" funktionierts.

ZitatDer User fhem hat manchmal keine komplette Umgebung?

Ich denke das ich irgendwo auf meinem bisherigen FHEM-Server eine Einstellung gemacht hab das fhem halt die komplette Umgebung hat, ob das jetzt richtig ist oder weniger gut, weiß ich nicht.
Ich kenn mich hier wirklich nicht aus, kann ich es wieder so einstellen das ich den Pfad nicht mit angeben muss oder besser sein lassen ?


{qx(grep fhem /etc/passwd)}
fhem:x:999:20::/opt/fhem:/bin/bash

{qx(printenv)}
LANG=de_DE.UTF-8
LANGUAGE=de_DE
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOME=/opt/fhem
LOGNAME=fhem
USER=fhem
SHELL=/bin/bash
INVOCATION_ID=41e27f47c20845348d29d6b13b9321fa
JOURNAL_STREAM=8:257177
SYSTEMD_EXEC_PID=54804
PERL_LWP_SSL_VERIFY_HOSTNAME=0

Otto123

Naja das sieht eigentlich gut aus:
ZitatPATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOME=/opt/fhem
Mit Pfad ist immer sicherer :)
Ich bin auch nicht so sattelfest. Er sagt ja er findet das Script nicht ...
Steht er denn im Moment des Aufrufes in seinem HOME Directory?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz