Quantcast
Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

( gelöst ) Script zum Löschen von Videos auf FTP Server

schumi2009

Elite Lord
Supporter
Registriert
8. Mai 2009
Beiträge
3.051
Lösungen
2
Reaktionspunkte
2.894
Punkte
403
Hallo,
ich möchte gerne von der FritzBox aus die Freetz installiert hat ein Script ausführen lassen z.B. einmal am Tag, dieses Script soll dann auf einem FTP Server Videos die älter wie 30Tage sind löschen!

PS.: Benötige dieses Script, da auf diesen FTP Server Videos von einer Überwachungskamera gespeichert werden.

Ich habe ein Script gefunden, was über Crontab läuft:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

function delete_files($dir)
{
$handle = opendir($dir);
$cnt = 0;

$timeout = time()-60*60*24*2;

while(false !== ($file = readdir( $handle ))) {
$absfile = $dir . $file;
if(is_dir($absfile)) continue;

$mtime = filemtime($absfile); // ggf. filectime() statt filemtime() verwenden

printf("%s: mtime = %s, timeout = %s\n", $absfile, strftime("%Y-%m-%d,%H:%M:%S",$mtime), strftime("%Y-%m-%d,%H:%M:%S",$timeout));
if($timeout > $mtime) {
unlink( $absfile );
printf("%s geloescht\n", $absfile);
$cnt++;
}
}
closedir($handle);
echo 'Anzahl: ' . $cnt;
}

delete_files('/FI9805W_xxxE61FFCC/');
delete_files('/verzeichnis_2/');
delete_files('/verzeichnis_3/');

Allerdings ist der Script für 48 Std. geschrieben. Leider kenne ich mich mit crontab nicht so wirklich aus, deshalb weiß jemand, wo ich das von 48Std. auf 4Wochen ändern kann?

Und die 2. Frage ist dann mein FTP ist mit Benutzer und Passwort geschützt, wo muss ich das eingeben, damit das Script Zugang bekommt?

Weiß keiner wie ich es anpassen müsste:disappointed:
 
Zuletzt bearbeitet von einem Moderator:
Hi,

warum lässt Du nicht via rm in der Crontab den Inhalt des Ordners löschen?

Dazu braucht es kein Skript.

Gruß

Gesendet von meinem Xiaomi POCOPHONE F1 mit Tapatalk
 
Und wie lautet dann der Befehl?
Wichtig ist, das Aufnahmen die älter wie 4Wochen gelöscht werden und das in 4.Verzeichnissen.
Der FTP ist wie bereits geschrieben Passwort geschützt, zu finden ist er über die IP+Verzeichnis bsp: xxx.xxx.xxx.xxx./01_Videos

Ein Video hat z.B. diesen Name: "20181011204433ch01.avi"
 
Zuletzt bearbeitet:
Habe eure Befehle mal geteste, leider geht es nicht...

Also Crontab läuft auf einer Box mit einer anderen IP wie der FTP Server. Der FTP Server ist Passwort geschützt, wie muss es dann eine gegeben werden? FTP Server ist ebenfals eine FritzBox

Ich habe diese Zeile aktuell in Verwendeung:
Code:
00 12 * * * find \\PFAD -ctime +30 -exec rm '{}' \;

Nur leider findet er den Pfad nicht, habe es mit dieser Zeile getestet:
Code:
find //PFAD -ctime +10

Der Eingetragene Link geht z.B. unter Windows als Netzwerklaufwerk...
Link sieht so aus:
Code:
//IP DES SERVERS/FRITZ.NAS/SAMSUNG-HD321KJ-01/Ordner wo die Videos sind
 
Zuletzt bearbeitet:
Melde mich mal zu diesem Thema zurük!
Habe jetzt auf der Box, die den FTP Server bereitstellt freetz installiert!

Jetzt möchte ich in dem Ordner jeden Tag einen Ordner mit dem Datum erstellen lassen:
# Ordner mit heutigen Datum Erstellen
5 0 * * * mkdir /var/media/ftp/uStor01/Test/$(date +\%Y-\%m-\%d)

Jetzt sollen alle Videos vom Vortag in den Ordner vom Vortag verschoben werden und da hängt es bei mir:
find /var/media/ftp/uStor01/Test/ -mtime -1 -exec mv /var/media/ftp/uStor11/Test/$(date +\%Y-\%m-\%d-1)
 
Melde mich mal zu dem Thema zurück. Habe es jetzt über LFTP ans laufen bekommen, mit Hilfe von anderen Foren.
Ordner umbennen und Z_Heute neu erstellen:
#!/bin/sh
server='ADRESSE DES SERVERS';
user='USERSAME';
pass='PASSWORT';
path='ORDNER WO DIE VIDEOS AKTUELL SIND z.B. 01_TEST';

#Warte Zeit, damit die Uhrzeit 23:59:58Uhr ist
sleep 58

#FTP Login, Ordner "Z_Heute" mit dem heutigen Datum umbennen und Ordner "Z_Heute" erstellen
lftp "$server" -u "$user","$pass" -e "cd \"$path\" && mv \"Z_Heute\" \"$(date +%Y-%m-%d)\" && mkdir \"Z_Heute\" && exit"

#EOF

Odner die Älter als 30 Tage sind löschen:
#!/bin/sh
server='ADRESSE DES SERVERS';
user='USERSAME';
pass='PASSWORT';
path='ORDNER WO DIE VIDEOS AKTUELL SIND z.B. 01_TEST';
now=$(date +%s);
a_month_ago=$(( $now - (31 * 24 * 3600) ));

# Löschen der Videos aus dem Ordner "01_TEST"
for directory in $(lftp "$server" -u "$user","$pass" -e "cd \"$path1\" && glob -d echo *; quit")
do
d=$(date -d "$directory" +%s 2>/dev/null) || continue
if [ $d -lt $a_month_ago ]
then
lftp "$server" -u "$user","$pass" -e "cd \"$path1\" && rm -r \"$directory\"; quit"
fi
done
#EOF
 
Zurück
Oben