Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Codeschnipsel - Datei löschen auf Synology

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Codeschnipsel - Datei löschen auf Synology

    This topic has been deleted. Only users with topic management privileges can see it.
    • bahnuhr
      bahnuhr Forum Testing Most Active last edited by

      Guten Morgen,

      habt ihr mal einen Codeschnipsel für mich um eine Datei auf der Synology zu löschen.

      Probiert habe ich schon:

      unlink('ftp://dieter:abcde@192.168.xxx.x/Sicherung/', '123.txt',(e)=>{
          if(e) log(e)
      })
      

      oder auch:

          var fs = require('fs'); 
          fs.unlink('//SYNOLOGY/Sicherung/123.txt', function (err) {
              if (err) throw err;
              log('Datei wurde gelöscht.');
          });
      

      Und davon auch die verschiedensten Optionen.

      Fazit:
      Die Datei wird nicht gelöscht.
      Im Log kommt z.B.:

      Error: ENOENT: no such file or directory, unlink '//SYNOLOGY/Sicherung/123.txt'
      

      Danke im Voraus.

      mfg
      Dieter

      falke69 1 Reply Last reply Reply Quote 0
      • falke69
        falke69 @bahnuhr last edited by

        @bahnuhr

        schau mal hier. Vielleicht hilft das ja weiter.

        Wenn es sich um Dateien älter als xx Tage handelt
        nuzte ich um alte Aufnahmen meiner Cam zu löschen folgenden Befehl.
        Die 19 steht für das alter der Tage.

        find /Verzeichnis/* -mtime +19 -type d -exec rm -rf {} \;
        
        bahnuhr 1 Reply Last reply Reply Quote 0
        • bahnuhr
          bahnuhr Forum Testing Most Active @falke69 last edited by

          @falke69

          Und wie machst du das ganze per Script?

          falke69 1 Reply Last reply Reply Quote 0
          • falke69
            falke69 @bahnuhr last edited by

            @bahnuhr

            mit Shell Script

            #!/usr/bin/expect -f
            mount -t cifs -o username=Benutzername,password=geheim //192.168.xxx.xxx/Cam /mnt/cam
            find /mnt/cam/* -mtime +19 -type d -exec rm -rf {} \;
            sleep 10s
            umount /mnt/cam
            
            
            bahnuhr 1 Reply Last reply Reply Quote 0
            • bahnuhr
              bahnuhr Forum Testing Most Active @falke69 last edited by

              @falke69

              Das wäre evtl. auch ne Lösung.

              Ich suche aber ein Script was ich per iob ändern und ausführen kann.

              falke69 liv-in-sky 2 Replies Last reply Reply Quote 0
              • falke69
                falke69 @bahnuhr last edited by

                @bahnuhr

                Ich hatte am Anfang das mit dem exec Befehl über Blockly gemacht.
                Dann hatte ich ein Script gefunden, wo ich mich auf den Rechner einloggen kann und das Shell Script ausführen kann. In meinem Fall liegt das Script mit auf meinem IO-Broker und wird einmal täglich automatisch gestartet.

                1 Reply Last reply Reply Quote 0
                • liv-in-sky
                  liv-in-sky @bahnuhr last edited by

                  @bahnuhr

                  wie ist den das directory eingebunden ? ist es gemountet ? oder willst du über ftp darauf zugreifen ?
                  so wie es aussieht, ist da noch dein herz bei windows 🙂

                  das ist über einen mount: da braucht man kein "//" - ist ja linux 🙂 sondern nur eines "/SYNOLOGY/Sicherung/123.txt" - aber es muss gemountet sein - ich nehme an, dass "//SYNOLOGY/Sicherung/123.txt" ein windows rechner ist, der in deinem netzwerk zu sehen ist

                  
                  
                      var fs = require('fs'); 
                  
                      fs.unlink('//SYNOLOGY/Sicherung/123.txt', function (err) {
                  
                          if (err) throw err;
                  
                          log('Datei wurde gelöscht.');
                  
                      });
                  
                  

                  damit du über fs. zugreifen kannst, musst du zuerst sowas ausführen - evtl über exec() und anschliessend einen umount

                  mount -t cifs -o username=Benutzername,password=geheim //192.168.xxx.xxx/Cam /mnt/cam
                  

                  willst du über ftp löschen, muss du wohl sowas machen https://www.npmjs.com/package/basic-ftp?activeTab=readme

                  bahnuhr 1 Reply Last reply Reply Quote 0
                  • bahnuhr
                    bahnuhr Forum Testing Most Active @liv-in-sky last edited by

                    @liv-in-sky

                    Installation:
                    iob läuft in vm in proxmox auf einem extra nuc rechner
                    Daneben habe ich eine synology mit laufwerke..
                    Auf diese greif ich zu.

                    Und nun möchte ich Dateien/Verzeichnisse auf den FP der Synology löschen.
                    Und das ganze per script.

                    ftp soll mir recht sein.
                    Hatte ich ja oben auch probiert.

                    liv-in-sky 1 Reply Last reply Reply Quote 0
                    • liv-in-sky
                      liv-in-sky @bahnuhr last edited by

                      @bahnuhr

                      habe mit fritzbox getestet

                      du musst das im setting (als zusatznode) des javascriptadapters hinzufügen: basic-ftp
                      das directory muss natürlich über ftp erreichbar sein (auf synology)

                      Image 2.png

                      im bild siehst du winscp - unten - mit dem file

                      AApossis (122).gif

                      das script

                      
                      const ftp = require("basic-ftp")
                      
                      example()
                      
                      async function example() {
                         const client = new ftp.Client()
                         client.ftp.verbose = true
                         try {
                             await client.access({
                                 host: "192.168.178.1",
                                 user: "username",
                                 password: "password",
                                 secure: false
                             })
                             await client.cd('test')
                             console.log(await client.list())
                             
                             await client.remove('filmstatus.txt')
                             console.log(await client.list())
                         }
                         catch(err) {
                             console.log(err)
                         }
                         client.close()
                      }
                      
                      

                      bahnuhr 2 Replies Last reply Reply Quote 1
                      • bahnuhr
                        bahnuhr Forum Testing Most Active @liv-in-sky last edited by

                        @liv-in-sky

                        Danke für deine Hilfe.
                        Ich probier das nachher noch aus.
                        Melde mich dann.

                        1 Reply Last reply Reply Quote 0
                        • bahnuhr
                          bahnuhr Forum Testing Most Active @liv-in-sky last edited by

                          @liv-in-sky

                          Rückinfo von mir.

                          1. Testversuch hat geklappt.
                            Muss man schauen, was man damit alles machen kann.

                          Danke dir.

                          mfg
                          Dieter

                          1 Reply Last reply Reply Quote 0
                          • bahnuhr
                            bahnuhr Forum Testing Most Active last edited by

                            @alle

                            Müsste dies nicht auch mit einem einfachen "exec" Befehl funktionieren.

                            Zum kopieren benutze ich z.B.

                            var Server = "ftp://dieter:xxx@192.168.xxx.x/Sicherung/Sicherung' 'ioBroker/Scripte/" + Jahr + "_" + Monat + "_" + Tag + "/";
                            exec('wput -q --basename=/opt/iobroker/Scripte/ /opt/iobroker/Scripte/global ' + Server, function (error, result, stderr) { if (error) { console.log(error + " " + result); } });
                            

                            Müsste dies nicht auch mit einem "del" oder "rm" funktionieren ?
                            Also Dateien löschen per exec.
                            Geht sowas ?

                            liv-in-sky 1 Reply Last reply Reply Quote 0
                            • liv-in-sky
                              liv-in-sky @bahnuhr last edited by

                              @bahnuhr

                              bei mir funktioniert das auf der console:

                              curl -v -u user:passwort  ftp://192.168.178.1/test/filmstatus.txt -Q '-DELE filmstatus.txt'
                              
                              1 Reply Last reply Reply Quote 1
                              • First post
                                Last post

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              747
                              Online

                              31.8k
                              Users

                              80.0k
                              Topics

                              1.3m
                              Posts

                              javascript
                              3
                              13
                              404
                              Loading More Posts
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes
                              Reply
                              • Reply as topic
                              Log in to reply
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                              The ioBroker Community 2014-2023
                              logo