Automatisch files/folders verwijderen op synology met task

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Mystikal
  • Registratie: Januari 2001
  • Laatst online: 11:31

Mystikal

It never hurts to help!

Topicstarter
Ik wil graag oudere files en folder verwijderen op mijn NAS middels een scheduled task.
De shared folder waar de files en folders van de camera beelden in komen is Netatmo.
Heb op de 2 camera's via FTP de foto's laten plaatsen op de NAS in bovenstaande folder.

Heb wat zitten googlen en ben tot nu toe tot dit gekomen. Eerste om files ouder dan 60 dagen te verwijderen. De andere om de lege folders te verwijderen die de camera aanmaakt (1 folder per dag)

Ik zelf heb weinig verstand van dit soort dingen en heb onderstaande op internet gevonden. Ik krijg het alleen niet werkend. Heb ze beiden onder elkaar in één task gezet.

Netatmo folder staat op de root van de Synology.

find /Netatmo/ -mtime +60 -type f -delete

find /Netatmo/ -depth -type d -exec rmdir {} \; 2>/dev/null

Suggesties welkom!

ps: had het al in het synology forum gevraagd, maar kreeg geen reactie. Dus probeer het even apart.

Basement Bios ---- Exo-S

Alle reacties


Acties:
  • 0 Henk 'm!

  • Mystikal
  • Registratie: Januari 2001
  • Laatst online: 11:31

Mystikal

It never hurts to help!

Topicstarter
Schopje...

Basement Bios ---- Exo-S


  • dixet
  • Registratie: Februari 2010
  • Laatst online: 15:49
Mystikal schreef op maandag 20 september 2021 @ 09:58:
Ik krijg het alleen niet werkend. Heb ze beiden onder elkaar in één task gezet.
Wat krijg je niet werkend? Krijg je een foutmelding? Start de task niet? Wordt er niets verwijderd? Of juist teveel?
Mystikal schreef op maandag 20 september 2021 @ 09:58:
find /Netatmo/ -mtime +60 -type f -delete

find /Netatmo/ -depth -type d -exec rmdir {} \; 2>/dev/null
Werken deze commando's wel wanneer je ze in een terminal sessie uitvoert?

ik heb zelf geen synology meer, dus kan niet uittesten wat wel of niet zou werken

  • Mystikal
  • Registratie: Januari 2001
  • Laatst online: 11:31

Mystikal

It never hurts to help!

Topicstarter
dixet schreef op donderdag 23 september 2021 @ 08:23:
[...]

Wat krijg je niet werkend? Krijg je een foutmelding? Start de task niet? Wordt er niets verwijderd? Of juist teveel?


[...]

Werken deze commando's wel wanneer je ze in een terminal sessie uitvoert?

ik heb zelf geen synology meer, dus kan niet uittesten wat wel of niet zou werken
Ik krijg geen foutmelding. Ik zie ook niet of de task is uitgevoerd. Hij staat ingesteld dat hij elke dag draait.

Rechtstreeks in een terminal draaien heb ik niet gedaan. Weet ook niet hoe dat zou moeten. Ik ben echt een basic gebruiker... :X

Basement Bios ---- Exo-S


  • Tazzios
  • Registratie: November 2001
  • Laatst online: 10:49

Tazzios

..

Ik heb zelf deze draaien op mijn synology

find /volume1/Backup -name "backupbestandnaam.*" -type f -mtime +30 -exec rm -f {} \;


de bestanden die ik verwijder heten:
backupbestandnaam.2021-09-20
backupbestandnaam.2021-09-23

edit:
ik vermoed dat het niet werkt omdat je het volume niet vermeld.

[ Voor 13% gewijzigd door Tazzios op 23-09-2021 11:53 ]


  • Mystikal
  • Registratie: Januari 2001
  • Laatst online: 11:31

Mystikal

It never hurts to help!

Topicstarter
Tazzios schreef op donderdag 23 september 2021 @ 11:52:
Ik heb zelf deze draaien op mijn synology

find /volume1/Backup -name "backupbestandnaam.*" -type f -mtime +30 -exec rm -f {} \;


de bestanden die ik verwijder heten:
backupbestandnaam.2021-09-20
backupbestandnaam.2021-09-23

edit:
ik vermoed dat het niet werkt omdat je het volume niet vermeld.
Volume heb ik later toegevoegd, maakte geen verschil.

Zag wel deze output:
find: cannot get current directory: Permission denied

Wat ik dan eigenlijk weer niet snap, want ik heb mijn admin account gebruikt.

Ik zal jou code ook eens proberen. Mijn files staan echter in de volgende folder structuur:

Volume 1\Netatmo\2021\09\*.mp4

Hoe verwerk ik dat in de code?

[ Voor 16% gewijzigd door Mystikal op 23-09-2021 12:07 ]

Basement Bios ---- Exo-S


  • Tazzios
  • Registratie: November 2001
  • Laatst online: 10:49

Tazzios

..

ik vermoed:
find /volume1/Netatmo -name "*.mp4" -type f -mtime +30 -exec rm -f {} \;

maar ik heb geen ervaring met folders. Na wat zoeken vond ik
find /volume1/Netatmo -name "*.mp4" -type f -depth 2 -mtime +30 -exec rm -f {} \;
maar je kan het eerst zonder proberen. Mocht die niet werken moet je zelf even zoeken op "linux find subfolders"


Indien het verwijderen lukt, heb je nog een script nodig om de lege folders te verwijderen.

[ Voor 4% gewijzigd door Tazzios op 23-09-2021 12:10 ]


  • Mystikal
  • Registratie: Januari 2001
  • Laatst online: 11:31

Mystikal

It never hurts to help!

Topicstarter
Tazzios schreef op donderdag 23 september 2021 @ 12:08:
ik vermoed:
find /volume1/Netatmo -name "*.mp4" -type f -mtime +30 -exec rm -f {} \;

maar ik heb geen ervaring met folders. Na wat zoeken vond ik
find /volume1/Netatmo -name "*.mp4" -type f -depth 2 -mtime +30 -exec rm -f {} \;
maar je kan het eerst zonder proberen. Mocht die niet werken moet je zelf even zoeken op "linux find subfolders"


Indien het verwijderen lukt, heb je nog een script nodig om de lege folders te verwijderen.
Na het invullen van jouw 2e code kreeg ik deze output:

find: paths must precede expression: 2
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]

Heb reeds ' ' geplaatst bij *.mp4, maar hielp ook niet.

[ Voor 3% gewijzigd door Mystikal op 23-09-2021 12:22 ]

Basement Bios ---- Exo-S


  • Tazzios
  • Registratie: November 2001
  • Laatst online: 10:49

Tazzios

..

En de eerste zoals aangegeven werkt die misschien al.
Zet ter test een mp4 in /volume1/Netatmo map dan kun je zien of die wel wordt verwijdert.

Mocht het niet werken zul je zelf even moeten uitzoeken hoe je find in subfolders moet organiseren, daar weet ik verder niets van.

  • Mystikal
  • Registratie: Januari 2001
  • Laatst online: 11:31

Mystikal

It never hurts to help!

Topicstarter
Tazzios schreef op donderdag 23 september 2021 @ 12:22:
En de eerste zoals aangegeven werkt die misschien al.
Zet ter test een mp4 in /volume1/Netatmo map dan kun je zien of die wel wordt verwijdert.

Mocht het niet werken zul je zelf even moeten uitzoeken hoe je find in subfolders moet organiseren, daar weet ik verder niets van.
Bedankt voor je hulp zover, echter:
output is nu weer: find: cannot get current directory: Permission denied
Script wordt gedraaid door admin, met read/write rechten op deze folder.

Daarnaast wordt de mp4 in de root van Netatmo ook niet verwijderd.

Wellicht nog andere tweakers met ideeen?

Basement Bios ---- Exo-S


  • Tazzios
  • Registratie: November 2001
  • Laatst online: 10:49

Tazzios

..

je hebt toch geen spatie staan tussen volume en 1 zoals in je eerdere post? hoofdlettergebruik anders? Share op volume2?

De melding lijkt er toch op dat je pad niet klopt, dat kan niemand op afstand raden.

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Je zult inderdaad het juiste pad moeten opgeven. Goed om toch eerst even te proberen via de terminal, dan eerst tijdelijk (!) SSH inschakelen: https://kb.synology.com/n...minCenter/system_terminal en dan benaderen via een ssh client. Ik gebruik putty maar er zijn er vele.

Dan kan je daar met ls checken wat de juiste directory is. Met ls -l kan je de rechten zien (al kan dat makkelijker via de webinterface, denk ik).

Zoek ook even uit onder welke gebruiker de scheduled task draait (mijn NAS staat nu uit dus ik kan niet checken). Dat is niet per se jouw eigen account. En als die andere account geen rechten heeft..


Overigens: je herhaalt dat je er niet per se veel verstand van hebt. Pas goed op met deze commando's, je wilt niet een foutje maken en alle data van de NAS verwijderen.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • Mystikal
  • Registratie: Januari 2001
  • Laatst online: 11:31

Mystikal

It never hurts to help!

Topicstarter
F_J_K schreef op donderdag 23 september 2021 @ 12:45:
Je zult inderdaad het juiste pad moeten opgeven. Goed om toch eerst even te proberen via de terminal, dan eerst tijdelijk (!) SSH inschakelen: https://kb.synology.com/n...minCenter/system_terminal en dan benaderen via een ssh client. Ik gebruik putty maar er zijn er vele.

Dan kan je daar met ls checken wat de juiste directory is. Met ls -l kan je de rechten zien (al kan dat makkelijker via de webinterface, denk ik).

Zoek ook even uit onder welke gebruiker de scheduled task draait (mijn NAS staat nu uit dus ik kan niet checken). Dat is niet per se jouw eigen account. En als die andere account geen rechten heeft..


Overigens: je herhaalt dat je er niet per se veel verstand van hebt. Pas goed op met deze commando's, je wilt niet een foutje maken en alle data van de NAS verwijderen.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Brandweer1@MYSTIKAL_NAS:/$ ls -a
.    config  etc.defaults  lib32       .mkcert.serial   opt   root  .syno         tmp      var           volume2  volumeUSB1
..   dev     initrd        lib64       mnt              proc  run   sys           tmpRoot  var.defaults  volume3
bin  etc     lib           lost+found  .old_patch_info  .rnd  sbin  .system_info  usr      volume1       volume4
Brandweer1@MYSTIKAL_NAS:/$ cd colume1
-sh: cd: colume1: No such file or directory
Brandweer1@MYSTIKAL_NAS:/$ cd volume1
Brandweer1@MYSTIKAL_NAS:/volume1$ ls -a
.   @appstore     aquota.user  @database     docker   @eaDir        @img_bkp_cache  Netatmo  @smbd.core.gz  @tmp
..  aquota.group  @autoupdate  @dms.core.gz  @docker  @gpg.core.gz  MoviesD1        Plex     synoquota.db   @webdav
Brandweer1@MYSTIKAL_NAS:/volume1$ cd Netatmo
Brandweer1@MYSTIKAL_NAS:/volume1/Netatmo$ ls -a
.  ..  2021  2021-09-06_20.54_c877be15.mp4  @eaDir  #recycle  synoscheduler
Brandweer1@MYSTIKAL_NAS:/volume1/Netatmo$ cd 2021
Brandweer1@MYSTIKAL_NAS:/volume1/Netatmo/2021$


Code is dus volgens mij gewoon:
find /volume1/Netatmo -name "*.mp4" -type f -mtime +1 -exec rm -f {} \;

:?

Gebruiker heeft alle read/write rechten, dus dat moet goed zijn.

Basement Bios ---- Exo-S


Acties:
  • 0 Henk 'm!

  • P-Storm
  • Registratie: September 2006
  • Laatst online: 06-06 09:18
Probeer de
code:
1
ls -l
commando eens? Die geeft ook weer wat de rechten zijn op de map. Mijn geld zou ingezet worden op de huidige gebruiker toch een of andere manier niet bij de map mag, of dat er een mapnaam fout (mogelijk spatie escaping) probleem is.

Stukje uitleg over de output kan je hier vinden

Acties:
  • 0 Henk 'm!

  • Mystikal
  • Registratie: Januari 2001
  • Laatst online: 11:31

Mystikal

It never hurts to help!

Topicstarter
P-Storm schreef op maandag 27 september 2021 @ 15:38:
Probeer de
code:
1
ls -l
commando eens? Die geeft ook weer wat de rechten zijn op de map. Mijn geld zou ingezet worden op de huidige gebruiker toch een of andere manier niet bij de map mag, of dat er een mapnaam fout (mogelijk spatie escaping) probleem is.

Stukje uitleg over de output kan je hier vinden
code:
1
2
3
4
5
6
7
8
9
Buiten1@MYSTIKAL_NAS:/volume1/Netatmo$ ls -al
total 12120
drwxrwxrwx+  6 root    root      4096 Sep 23 12:28 .
drwxr-xr-x  14 root    root      4096 Sep 20 03:23 ..
drwxrwxrwx+  3 Netatmo users     4096 Sep  6 17:15 2021
-rwxrwxrwx+  1 [bold]Buiten1[/bold] users 12382138 Sep  6 20:55 2021-09-06_20.54_c877be15.mp4
drwxrwxrwx+  3 root    root      4096 Sep 20 03:23 @eaDir
drwxrwxrwx+  4 root    root      4096 Sep 23 12:13 #recycle
drwxrwxrwx+  3 Buiten1 users     4096 Sep 23 11:50 synoscheduler


Het heeft toch niet te maken dat de files dieper in de folders staan? Ik neem aan dat de opdracht zoekt in de huidige en lagere folders van de desbetreffende Netatmo folder?
Ik log in met Buiten1

(naam Buiten1 is aangepast ivm beveiliging in dit topic)

Basement Bios ---- Exo-S


Acties:
  • 0 Henk 'm!

  • P-Storm
  • Registratie: September 2006
  • Laatst online: 06-06 09:18
Met de user 'Netatmo' en groep 'users' is dit aangemaakt. De dingen die ik nu zou controleren is:

Kan je bevestigen dat de gebruiker met Buiten1 bij de groep users zit?

Wat doet de script als je onder 'root' uitvoert? Note: deze find zou niets mogen verwijderen en alleen laten zien.
code:
1
find /volume1/Netatmo -name '*.mp4' -type f -mtime +1


Let op dat de quotes om name enkele quotes ' is, dat kan uitmaken. LEt ook op dat ext3 hoofdletter gevoelig is.

Met bovenstaande find zou je in ieder geval iets moeten vinden.

Als de code 'find: cannot get current directory: Permission denied' geeft dan zit hij waarschijnlijk in de juiste map, alleen ligt het aan de user dat die rechten niet goed zijn.

Check ook of de bestanden onder dezelfde groep/user gemaakt zijn, want anders kan je wel in de map, maar mag je niets met de bestanden zelf doen.

Acties:
  • 0 Henk 'm!

  • Mystikal
  • Registratie: Januari 2001
  • Laatst online: 11:31

Mystikal

It never hurts to help!

Topicstarter
P-Storm schreef op maandag 27 september 2021 @ 17:46:
Met de user 'Netatmo' en groep 'users' is dit aangemaakt. De dingen die ik nu zou controleren is:

Kan je bevestigen dat de gebruiker met Buiten1 bij de groep users zit?

Wat doet de script als je onder 'root' uitvoert? Note: deze find zou niets mogen verwijderen en alleen laten zien.
code:
1
find /volume1/Netatmo -name '*.mp4' -type f -mtime +1


Let op dat de quotes om name enkele quotes ' is, dat kan uitmaken. LEt ook op dat ext3 hoofdletter gevoelig is.

Met bovenstaande find zou je in ieder geval iets moeten vinden.

Als de code 'find: cannot get current directory: Permission denied' geeft dan zit hij waarschijnlijk in de juiste map, alleen ligt het aan de user dat die rechten niet goed zijn.

Check ook of de bestanden onder dezelfde groep/user gemaakt zijn, want anders kan je wel in de map, maar mag je niets met de bestanden zelf doen.
Bedankt voor je uitgebreide hulp! Goed nieuws en slecht nieuws.... (althans voor mij dan... :+ ).
Allereerst om terug te komen op je laatste opmerking. De bestanden worden via ftp en een aparte user aangemaakt op de Synology (user=Netatmo). Deze heb ik nu ook r/w rechten gegeven op de Netatmo folder en is toegevoegd aan de groep users.

Had echter geen resultaat voor het script.

Heb het script ook via putty gedraaid in root, zoals je zei. Dan worden alle mp4's gevonden. Dus dat lijkt me positief. Ik heb via putty ingelogd met mijn normale admin account.

Huidige script wat ik gebruik is nu:
find /volume1/Netatmo/ -name '*.mp4' -type f -mtime +2 -exec rm -f {} \;


Ideeën hoe nu verder?

[ Voor 3% gewijzigd door Mystikal op 28-09-2021 12:36 ]

Basement Bios ---- Exo-S


Acties:
  • 0 Henk 'm!

  • SadisticPanda
  • Registratie: Februari 2009
  • Niet online

SadisticPanda

Heet patatje :o

Mystikal schreef op dinsdag 28 september 2021 @ 12:35:
[...]


Bedankt voor je uitgebreide hulp! Goed nieuws en slecht nieuws.... (althans voor mij dan... :+ ).
Allereerst om terug te komen op je laatste opmerking. De bestanden worden via ftp en een aparte user aangemaakt op de Synology (user=Netatmo). Deze heb ik nu ook r/w rechten gegeven op de Netatmo folder en is toegevoegd aan de groep users.

Had echter geen resultaat voor het script.

Heb het script ook via putty gedraaid in root, zoals je zei. Dan worden alle mp4's gevonden. Dus dat lijkt me positief. Ik heb via putty ingelogd met mijn normale admin account.

Huidige script wat ik gebruik is nu:
find /volume1/Netatmo/ -name '*.mp4' -type f -mtime +2 -exec rm -f {} \;


Ideeën hoe nu verder?
In scriptje zetten en dan runnen via crontab van root? :+

Marstek 5.12kw v151, CT003 v117, Sagecom Xs212 1P,


  • P-Storm
  • Registratie: September 2006
  • Laatst online: 06-06 09:18
Mystikal schreef op dinsdag 28 september 2021 @ 12:35:
[...]


Bedankt voor je uitgebreide hulp! Goed nieuws en slecht nieuws.... (althans voor mij dan... :+ ).
Allereerst om terug te komen op je laatste opmerking. De bestanden worden via ftp en een aparte user aangemaakt op de Synology (user=Netatmo). Deze heb ik nu ook r/w rechten gegeven op de Netatmo folder en is toegevoegd aan de groep users.

Had echter geen resultaat voor het script.

Heb het script ook via putty gedraaid in root, zoals je zei. Dan worden alle mp4's gevonden. Dus dat lijkt me positief. Ik heb via putty ingelogd met mijn normale admin account.

Huidige script wat ik gebruik is nu:
find /volume1/Netatmo/ -name '*.mp4' -type f -mtime +2 -exec rm -f {} \;


Ideeën hoe nu verder?
Dit betekend dat het een rechten issue is. Je kan via ssh ook inloggen als een ander account (als dat enabled staat).

code:
1
sudo su - username


Hiermee kan je beter kijken in welke groepen bijvoorbeeld deze user zit. Gebruik hiervoor bijvoorbeeld 'id'.
Je zult de volgende dingen moeten nalopen:
  1. Staan de file permissies van de files goed die je wilt verwijderen? Denk aan 'ls -l'
  2. Heeft de user waar je de actie mee wil doen de juiste rechten? Cron user is mogelijk een andere user.
  3. Staat de user waar je deze actie mee wilt doen in de juiste groep?
Een optie is om de cron onder een andere user te laten verlopen, zie link.

Een andere optie die @SadisticPanda aangeeft is ook een optie (wat eigenlijk geen goede optie is, want je wilt root zo min mogelijk laten doen. Maar die afweging moet je zelf doen.

Zoals ik het zie ben je er bijna met de oplossing :)
Pagina: 1