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

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

Vorheriges Thema - Nächstes Thema

Otto123

Hi TomLee,

mount /mnt/FRITZNAS;
mv /mnt/FRITZNAS/[0-9]*_[0-9]*_Telefax\.[0-9]*.pdf /mnt/FRITZNAS/fax.pdf;
perl fhem.pl 7072 "set tb_TelegramBot sendDocument /mnt/FRITZNAS/fax.pdf";
rm /mnt/FRITZNAS/*;
umount /mnt/FRITZNAS;
Ich vermute da mountes Du nicht als user fhem. Und fhem hat kein recht den "außen" gemounteten Pfad zu lesen.

So könnte das in der FHEM Kommandozeile gehen
"mount /mnt/FRITZNAS; mv /mnt/FRITZNAS/[0-9]*_[0-9]*_Telefax\.[0-9]*.pdf /mnt/FRITZNAS/fax.pdf"; set tb_TelegramBot sendDocument /mnt/FRITZNAS/fax.pdf; "rm /mnt/FRITZNAS/*;umount /mnt/FRITZNAS"

Oder so als user fhem auf System Ebene:
sudo -su fhem bash -c 'mount /mnt/FRITZNAS;mv /mnt/FRITZNAS/[0-9]*_[0-9]*_Telefax\.[0-9]*.pdf /mnt/FRITZNAS/fax.pdf;perl fhem.pl 7072 "set tb_TelegramBot sendDocument /mnt/FRITZNAS/fax.pdf";rm /mnt/FRITZNAS/*;umount /mnt/FRITZNAS;'

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

ZitatIch vermute da mountes Du nicht als user fhem.

Ich ruf zum Test in der Kommandozeile das letzte gezeigte Script auf:

"/opt/fhem/getsendfax.sh &"

Deine Beispiele schau ich mir später an.


Otto123

Zitat von: TomLee am 11 Januar 2022, 18:45:17
//192.168.188.1/FRITZ.NAS/Intenso-RainbowLine-00/FRITZ/faxbox /mnt/FRITZNAS cifs noauto,users,noserverino,user=bli,password=bla
Du hälts Dich nicht an meinen Vorschlag - ich meine meine mit user vs username (versionsabhängig) war irgendwas. Eventuell ist nicht wirklch richtig gemountet. Hast Du Dein Script per Hand / zu Fuß probiert? Klappen wirklich die Rechte?
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

Wernieman

In der fstab hat er die Option "users" in dem Mount. Deshalb darf er .....
- 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

Zitatedit:

wenn ich zur Kontrolle die Datei nach /opt/fhem kopiere will ( weil dort klappt das senden mit sendDocument), gibts diese Meldung:


... kann nicht zum Lesen geöffnet werden: Veraltete Dateizugriffsnummer (file handle)

das kann man umgehen wenn man in der fstab (nach Ottos Anleitung) noserverino ergänzt.

Als workaround klappt dann das senden des Dokument wenn man die Datei nach /opt/fhem kopiert:


mount /mnt/FRITZNAS;
mv /mnt/FRITZNAS/[0-9]*_[0-9]*_Telefax\.[0-9]*.pdf /mnt/FRITZNAS/fax.pdf;
cp /mnt/FRITZNAS/fax.pdf /opt/fhem/fax.pdf;
perl fhem.pl 7072 "set tb_TelegramBot sendDocument /mnt/FRITZNAS/fax.pdf";
rm /mnt/FRITZNAS/*;
umount /mnt/FRITZNAS;

Ich würd aber gerne gleich aus dem gemounteden Pfad senden, jetzt müsste ich noch die Datei in /opt/fhem noch löschen.

Das war etwas verwirrend weil in dem gezeigten Script dann doch die Datei aus dem gemounteden Pfad gesendet werden soll, das war ein Kopierfehler, sry.

Nach etlichen Versuchen hab ich jetzt festgestellt das das senden aus dem gemounteden Pfad auch klappt.
Wichtig ist eine Verzögerung beim Aufruf des Scripts, und da gabs immer wieder Probleme weil ich mich an die Zeit langsam rangetastet hatte, erst hat es mit 20 Sekunden gut geklappt, dann mal wieder nicht, es scheint mit 22 Sekunden jetzt ausreichend, hatte wohl damit zu tun das es beim testen mal zwei Dateien sind (wenn ich mir selbst ein Fax schicke) die übertragen werden müssen oder wenn ich "von Hand" mit nur einer testete.

Ich fass nochmal alles zusammen:

fstab:
//192.168.188.1/FRITZ.NAS/Intenso-RainbowLine-00/FRITZ/faxbox /mnt/FRITZNAS cifs noauto,users,noserverino,user=bli,password=bla

Script:
#!/bin/bash

mount /mnt/FRITZNAS;
mv /mnt/FRITZNAS/[0-9]*_[0-9]*_Telefax\.[0-9]*.pdf /mnt/FRITZNAS/fax.pdf;
perl fhem.pl 7072 "set tb_TelegramBot sendDocument /mnt/FRITZNAS/fax.pdf";
rm /mnt/FRITZNAS/*;
umount /mnt/FRITZNAS;



Aufruf bei Faxeingang in der myUtils:

return fhem("set $sonoswz playSound 20 Fax-Beep;set $echok speak Fax Eingang;set tb_TelegramBot msg Faxeingang $extnr ($extn);define at_faxget at +00:00:22 {system('/opt/fhem/getsendfax.sh &')}") if $intnr ==  :P;




Otto123

Schau nochmal bitte hier wegen dem Syntax user vs username
https://wiki.ubuntuusers.de/mount.cifs/
Die Box im Abschnitt Benutzername Passwort
Kann sein ich verstehe es nicht umfänglich, aber ich würde mir an der Stelle username einprägen 😉
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

Ich habs ausprobiert gehabt mit username gestern Abend und das warf einen Fehler, ich probiers später nochmal, jetzt geht nicht.

TomLee

ZitatIch habs ausprobiert gehabt mit username gestern Abend und das warf einen Fehler, ich probiers später nochmal, jetzt geht nicht.

Nehm ich zurück, es klappt auch mit username. ::) 8)

Danke.

TomLee

Eine fixe Zeit nach dem Event im Callmonitor zu warten um das Fax dann abzuholen ist keine gute Idee.
Hab festgestellt/getestet das so ein Fax je nach Größe mehrere Minuten brauchen kann bis es am Ende in dem Ordner landet.
Vor der AT-Variante hatte ich es mit inotify/notify gelöst gehabt, das erscheint mir die bessere Umsetzung, auch wenn das dann zwei zusätzliche Definitionen benötigt.

 

Otto123

#24
aber ist es wichtig ob Du das Fax nach 10 sec oder 10 min löschst? Oder geht es Dir doch um die Nachricht: Fax ist da? Das kann ja die FB per Email.
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

Wernieman

Wobei dann das Fax sogar in der eMail "drin" steht ......
- 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

Aufgrund der Lösung hier hab ich die Mail-Zustellung abgeschaltet, ich will die Werbe-Faxe(n  ;D) nur per Telegram und nirgendwo noch gespeichert haben.

TomLee

Zitat von: Otto123 am 18 Januar 2022, 11:59:15
aber ist es wichtig ob Du das Fax nach 10 sec oder 10 min löschst?...

Zum löschen hab ich eigentlich vor mich mal mit msgDialog zu beschäftigen um damit am Ende zu entscheiden ob gelöscht werden kann oder nicht.

Zitat von: Otto123 am 18 Januar 2022, 11:59:15
Oder geht es Dir doch um die Nachricht: Fax ist da? Das kann ja die FB per Email.

Achso, war mir gar nicht aufgefallen:  ;D
Zitatreturn fhem("set $sonoswz playSound 20 Fax-Beep;set $echok speak Fax Eingang;set tb_TelegramBot msg Faxeingang $extnr ($extn);define at_faxget at +00:00:22 {system('/opt/fhem/getsendfax.sh &')}") if $intnr ==  :P;

Wernieman

Du kannst die Faxe auf eine eigene Mail schicken lassen .. mache ich bei mir. Auf der Mailadresse wird dann automatisch "verarbeitet" ... allerdings betreibe ich auch einen internen Mailserver
- 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

Wen es interessiert:

Meine ersten Gehversuche mit msgDialog, klappt auch alles erstmal, ist noch nicht ganz durchdacht aber so in die Richtung dachte ich die ganze Zeit, wie ich das mit dem mounten/umounten löse ist mir noch nicht ganz klar, hier zum Test hab ich in dem gestsendfax-Script das unmounten rausgenommen und unmounte dann via Telegram:

defmod md_fax msgDialog {\
"Fax": {\
"message": [\
"{return('(Drucken) ')}",\
"{return('(Sichern) ')}",\
"{return('(Löschen) ')}",\
"(abbrechen) ",\
"{return('Was kann ich für dich tun ?')}"\
],\
"Drucken": {\
"commands": [\
"{system(q(lpr -P HL-2035 /mnt/FRITZNAS/fax.pdf;;rm /mnt/FRITZNAS/*;;umount /mnt/FRITZNAS &))}"\
]\
},\
"Sichern": {\
"commands": [\
"{system(q(cp /mnt/FRITZNAS/fax.pdf /media/usbstick/bli/bla/Fax/fax_`date +%y%m%d_%H%M`.pdf;;rm /mnt/FRITZNAS/*;;umount /mnt/FRITZNAS &))}"\
]\
},\
"Löschen": {\
"commands": [\
"{system(q(rm /mnt/FRITZNAS/*;;umount /mnt/FRITZNAS &))}"\
]\
} \
}\
}
attr md_fax allowed rr_Thomas
attr md_fax group Telegram
attr md_fax room Push

setstate md_fax 2022-01-20 12:43:43 state Initialized