Synology-Forum.nl

Firmware => Synology DSM 6.2 => Topic gestart door: LeoDuiv op 11 februari 2021, 23:17:18

Titel: Script om oude bestanden te verwijderen
Bericht door: LeoDuiv op 11 februari 2021, 23:17:18
Hallo allen,

Via Taakplanner maak ik dagelijks 'n back-up van Domoticz en bewaar deze in 'n aparte folder.
Hier voor gebruik ik het volgende script, welke ik van Internet-geplukt heb en aangepast aan mijn data-systeem.

#!/bin/bash
DOMO_IP="192.168.0.43"  # Domoticz IP
DOMO_PORT="8084"        # Domoticz port
### END OF USER CONFIGURABLE PARAMETERS
TIMESTAMP=`/bin/date +%Y%m%d%H%M%S`
BACKUPFILE="domoticzbackup_$TIMESTAMP.db"
## Make the back-up file
/usr/bin/curl -s http://$DOMO_IP:$DOMO_PORT/backupdatabase.php > /volume1/Back-ups/Domoticz-backup/$BACKUPFILE
## Delete files older then 7 days
/usr/bin/find /volume1/Back-ups/Domoticz-backup/ -name '*.db' -type f -mtime +7 -delete

Dit werkt erg goed, inclusief timestamp. Maar .....
De bestanden ouder dan 7 dagen worden niet verwijderd. dus, is er iets verkeerd in de laatste regel. Maar ik weet niet wat?

Kan iemand helpen?

Groet,
Leo

Titel: Re: Script om oude bestanden te verwijderen
Bericht door: DSGebruiker op 12 februari 2021, 09:40:20
Probeer eens manueel deze actie uit te voeren ?
Doe een SSH-sessie open op de NAS en voer het commando gewoon uit vanaf de shell.

..eerst eventueel zonder "-delete" flag

/usr/bin/find /volume1/Back-ups/Domoticz-backup/ -name '*.db' -type f -mtime +7

Wat zie je ? Krijg je errors ?
Voer je dit script uit als root ?
Titel: Re: Script om oude bestanden te verwijderen
Bericht door: Birdy op 12 februari 2021, 10:00:09
Ik heb het even getest:
/usr/bin/find /volume1/Back-ups/Domoticz-backup/ -name '*.db' -type f -mtime +7 -deleteEn werkt goed in PuTTY (admin) en Taakplanner (root).
Misschien een rechten probleem ?
Dus, even testen zoals @DSGebruiker heeft aangegeven.
Titel: Re: Script om oude bestanden te verwijderen
Bericht door: LeoDuiv op 12 februari 2021, 10:17:46
Hallo. Bedankt voor je antwoord.

Als ik de laatste regel in Putty uitvoer dan komt er 'n nieuwe regel, beginnende met #. Helemaal geen foutmelding of zo iets.
Als ik -delete weglaat precies het zelfde. Als ik 't volgende type, dus óók  -mtime weglaat:

/usr/bin/find /volume1/Back-ups/Domoticz-backup/ -name '*.db' -type f

Dan krijg ik 'n listing van alle db-bestanden.
't Is dus net of "-mtime" niet herkend wordt; maar ik krijg géén foutmelding.

't Maakt niet uit of ik als root of als user ingelogt ben; zelfde resultaat.

Misschien dat dit iets duidelijker is?

Groet,
Leo
Titel: Re: Script om oude bestanden te verwijderen
Bericht door: LeoDuiv op 12 februari 2021, 10:45:18
Hallo Allen,

Oplossing gevonden !!

Ik moet niet -mtime gebruiken, maar -atime.

(-mtime schijnt te maken te hebben met datum wanneer bestand gemodificeerd is. Mijn bestanden zijn niet gemodificeerd, alleen maar aangemaakt. -atime refereerd naar aanmaak datum.

Nu werkt 't perfect.

Bedankt voor jullie hulp.
Groet,
Leo
Titel: Re: Script om oude bestanden te verwijderen
Bericht door: Birdy op 12 februari 2021, 10:59:26
Mooi zo :thumbup:
Hier voor gebruik ik het volgende script, welke ik van Internet-geplukt heb.
Maar dan heeft die persoon het niet goed getest. :lol:
Titel: Re: Script om oude bestanden te verwijderen
Bericht door: Briolet op 12 februari 2021, 11:50:20
Niet goed getest, of geschreven voor een ander OS.

Als ik op de mac kijk betekent atime: accesstime, btime: creation time en mtime: modification time.

Mij lijkt dat modification time ook zou moeten werken. atime lijkt me dan zelfs minder geschikt en btime zou het beste zijn in deze situatie.

De help uit de nas kent geen btime en mtime heeft misschien een andere betekenis. (de help op de nas is wel een heel stuk slechter dan op de mac omdat de nas niets uitlegt over deze opties)
Titel: Re: Script om oude bestanden te verwijderen
Bericht door: Birdy op 12 februari 2021, 12:00:42
mtime = File modification time. Value of mtime is updated when content of file changes.
atime = File access time. Value of atime is modified when file is opened.
Titel: Re: Script om oude bestanden te verwijderen
Bericht door: LeoDuiv op 12 februari 2021, 12:06:24
Dat zou heel goed kunnen. Orginele script was eigenlijk voor 'n Pi.
Na dat ik 't volgende tegen kwam (https://www.hostinger.com/tutorials/how-to-use-find-and-locate-commands-in-linux/)
QUOTE:
Searching by Time
If you want to search for files based on when they were accessed and modification time footprints. Linux keeps track of the files using these three timestamps.

Access Time (-atime) – when the file was either read or written into.
Modification Time (-mtime) – when the file was modified.
Change Time (-ctime) – when the file’s meta-data was updated.
This option has to be used with a number that specifies how many days passed since the file was accessed, modified or changed.
UNQUOTE.

In ieder geval: met -atime werkt 't script.

Groet,
Leo