NEWS
Script für Ordner löschen auf einem NAS
-
@tt-tom Moin,
ja in den DPs steht dann schon zb Kamera Eingang in dem anderen 2023 und in dem anderen 04 drin
leider geht das Mounten nicht, da iobroker in einem Unprivileged LXC läuft. Habe schon viel versucht, aber scheinbar geht es damit nicht, oder ich zu dusselig ( Was hier sehr naheliegen könnte )
-
@nordischerjung wenn du nicht zur NAS kommst, kannst auch nichts löschen
EDIT: am host könntest du es mounten und ein bindmount machen
-
@maximal1981 sagte in Script für Ordner löschen auf einem NAS:
EDIT: am host könntest du es mounten und ein bindmount machen
wie geht das?
-
@nordischerjung dafür gibt es google und das proxmox Forum
ein wenig kann man sich auch selbst durcharbeiten, wenn man schon die Begrifflichkeiten hat
-
Also dein Button muss in ein Datenpunkt schreiben, diesen nutzt du dann als Trigger. Die anderen Datepunkte nutzt du mit dem Textbaustein „ erstelle Text aus“ und setzt den Pfad zusammen.
Aber erst musst du das Problem mit dem Zugriff lösen und da kann ich dir leider nicht weiter helfen. Habe keine Container.
-
@tt-tom soweit habe ich es schon
nur wie lautet der Löschbefehl, muss ich es dann mit dem exec Baustein machen?
Ja, das mounten ist natürlich noch das Problem. Ich hatte schon viel in den Foren gesucht und probiert, aber mit Backitup hatte ich es einfach nicht geschafft. Deshalb nutze ich dort immer noch FTP
-
Ich habe es jetzt erst einmal per FTP gelöst. Das funktioniert auch schon.
const ftp = require('ftp'); function deleteFolderOnNAS(folderPath) { console.log (folderPath); const config = { host: '192.168.170.70', port: 21, user: 'xxx', password: 'xxx', }; const client = new ftp(); client.on('ready', () => { console.log('Verbindung zum NAS per FTP erfolgreich hergestellt.'); client.list(folderPath, (err, list) => { if (err) { console.error('Fehler beim Überprüfen des Ordners:', err); client.end(); return; } if (list.length === 0) { console.error('Der zu löschende Ordner existiert nicht, oder ist Leer'); client.end(); return; } client.rmdir(folderPath, true, (err) => { if (err) { console.error('Fehler beim Löschen des Ordners:', err); } else { console.log('Ordner erfolgreich gelöscht.'); } client.end(); }); }); }); client.on('error', (err) => { console.error('Fehler beim Verbindungsaufbau:', err); }); client.connect(config); } const folderPath = '/Videos/' + Kamera + '/' + Jahr + '/' + Monat; // Pfad zum zu löschenden Ordner deleteFolderOnNAS(folderPath);
Ich würde jetzt gerne nur die Verbindungsmeldungen
Verbindung zum NAS per FTP erfolgreich hergestellt. oder Fehler beim Verbindungsaufbau
in die Varibale "Verbindung" schreiben
Und die anderen 3 (Fehler beim löschen usw) in die Var "Ordnervorh" schreiben.
Wie geht das denn?
Einfach mit
console.log('Verbindung zum NAS per FTP erfolgreich hergestellt.'); Verbindung = 'Verbindung zum NAS per FTP erfolgreich hergestellt.' ;
hat es nicht funktioniert. Der LOG Eintrag kam aber
PS an dem Baustein hatte ich natürlich Variablen dran an Verbindung und Ordnervorh
-
Schau es mir heute Abend an, am Handy ist doof.
-
zum Ausführen benötigst du den exec Baustein.
hier Info zum EXEC Baustein
hier info zum Löschen unter Linux, damit muss aber dein Verzeichnis unter ioBroker gemountet sein
-
@nordischerjung sagte in Script für Ordner löschen auf einem NAS:
in die Varibale "Verbindung" schreiben
Und die anderen 3 (Fehler beim löschen usw) in die Var "Ordnervorh" schreiben.
Wie geht das denn?möchtest du diese als Rückmeldung haben oder übergeben?
hier Findest du noch mal infos zu den Funktion