Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Daten in Ordner verschieben und nach x Tagen löschen lassen

Frage Linux

Mitglied: mclonger

mclonger (Level 1) - Jetzt verbinden

05.01.2014, aktualisiert 21:30 Uhr, 3135 Aufrufe, 29 Kommentare

Hallo an alle,
Ich habe ein "Problem" was ich niemals allein lösen kann da mir das Wissen dazu fehlt.

Und zwar. Ich habe drei Wlan Kameras die aller xSekunden ein Bild auf einer Hdd (ist an einer Fritzbox 7390 angeschlossen) hochladen.

Ist das möglich die Bilder in einen täglich neu angelegten Ordner zu verschieben und diese Bilder/Ordner nach 14Tagen wieder zu löschen?

Das sollte aber auf der Fritzbox selbständig laufen. Geht das überhaupt?


Vielen vielen Dank

fababa3fcfc3096a0cdd02dd47f8c937 - Klicke auf das Bild, um es zu vergrößern
29 Antworten
Mitglied: wiesi200
05.01.2014 um 22:00 Uhr
Hallo, bei der Fritzbox glaub ich nicht das die das kann.

Schau dir mal die Kamera an vielleicht kann die das selber
Bitte warten ..
Mitglied: mclonger
05.01.2014 um 22:05 Uhr
Sorry die Kamera kann nur Bilder machen und uploaden
Bitte warten ..
Mitglied: colinardo
06.01.2014, aktualisiert um 01:06 Uhr
Zitat von mclonger:
Das sollte aber auf der Fritzbox selbständig laufen. Geht das überhaupt?
wenn, dann nur mit geflashter Freetz-Firmware (http://linuxundich.de/hardware/die-fritzbox-via-freetz-mit-zusatzlichen ...)
und einem Shell-Script gekoppelt mit einem CRON-Job
Ansonsten das ganze einem günstigen und stromsparenden RaspberryPI diese Aufgabe überlassen, der dann gleichzeitig noch genügend Power für weitere Aufgaben in deinem Netz übernehmen kann.

Grüße Uwe
Bitte warten ..
Mitglied: mclonger
06.01.2014 um 08:22 Uhr
ich habe noch etwas im Forum gelesen... und mit Robocopy kann ich sowas doch auch machen.
wie müsste da der befehl aussehen für: erstelle täglich einen ordner und verschiebe -> und Daten älter als zwei Wochen löschen?

mkdir H:\alte
robocopy.exe H:\KAMERA H:\taegliche /E /MOVE /MINAGE:14 /R:1 /W:1
rmdir H:\alte /s /q

so habe ich angefangen, aber wie geht's weiter?

Mit freundlichen Grüßen Marcel
Bitte warten ..
Mitglied: wiesi200
06.01.2014 um 08:55 Uhr
Zitat von mclonger:

ich habe noch etwas im Forum gelesen... und mit Robocopy kann ich sowas doch auch machen.
wie müsste da der befehl aussehen für: erstelle täglich einen ordner und verschiebe -> und Daten älter als
zwei Wochen löschen?

Ja schon, aber robocopy ist ein Windows Programm das kann die Fritzbox nicht ausführen.

Wenn's die Kammera nicht kann dann bleibt dir nur der weg von Colinardo
Bitte warten ..
Mitglied: colinardo
06.01.2014, aktualisiert um 09:11 Uhr
Das hatten wir hier schon gefühlt 1 Millionen mal.
Such hier mal im Forum nach Dateien älter als x Tage löschen
Dazu muss aber ein Rechner von dir laufen ...
Grüße Uwe
Bitte warten ..
Mitglied: mclonger
06.01.2014 um 13:05 Uhr
kann man das forefiles auch per robocopy starten?

mein Rechner (auf arbeit) ist den ganzen Tag an. mein Traffic auf Arbeit leidet durch solch Aktionen aber nicht sonderlich groß? Oder
Bitte warten ..
Mitglied: colinardo
06.01.2014, aktualisiert um 18:26 Uhr
Hier auf die schnelle ein Powershell-Script für dein Vorhaben. Es verschiebt alle Bilder die älter als Heute sind, jeweils in einen Unterordner mit den Tagesdatum des jeweiligen Bildes. Zum Schluss werden alle Ordner und Bilder die älter als 14 Tage sind entfernt
In Zeile 1 den Pfad zu den Bildern angeben (ohne Backslash am Ende)
01.
$imageDir = "H:\KAMERA" 
02.
$images = dir "$imageDir\*.jpg" | ?{$_.PSIsContainer -eq $false} 
03.
 
04.
foreach ($image in $images){ 
05.
    if ($image.CreationTime -lt (get-date "00:00:00")){ 
06.
        $dateFolder ="$imageDir\$($image.CreationTime.ToShortDateString())" 
07.
        if (!(test-path $dateFolder)) {mkdir $dateFolder | out-null} 
08.
        Move-Item -Path $image.FullName -Destination $dateFolder -Force 
09.
10.
11.
dir "$imageDir\*" -Recurse | ?{$_.CreationTime -lt (get-date).AddDays(-14)} | Remove-Item
Falls du noch nie ein Powershell-Script ausgeführt hast musst du die Execution-Policy noch auf deinem System entsprechend setzen:
Set-Executionpolicy RemoteSigned
Grüße Uwe
Bitte warten ..
Mitglied: wiesi200
06.01.2014 um 17:24 Uhr
also abklären solltest du das aber mit deinem Arbeitgeber.

Aber ehrlich gesagt du musst das doch nicht permanent einordnen lassen.
Einfach das Skript bei deinem privaten PC so hinterlegen das er einsortiert wenn du ihn einschaltet und gut ist.
Bitte warten ..
Mitglied: mclonger
06.01.2014, aktualisiert um 17:49 Uhr
also die Daten lade ich dann lieber zu hause wenn der Rechner mal an ist.

Mit freundlichen Grüßen Marcel
Bitte warten ..
Mitglied: colinardo
06.01.2014, aktualisiert um 17:50 Uhr
Zitat von mclonger:
"Set-Executionpolicy RemoteSigned" gebe ich wohl einfach nur bei start -> auführen ein?
Nein, Powershell-Konsole mit Admin-Rechten öffnen und dort eingeben
das was colinardo geschrieben hat, wird so in robocopy eingefügt? ich stell mich vielleicht an
Wieder daneben, das gehört in eine Textdatei mit der Endung *.ps1.
Dein Google funktioniert noch bei dir ?? Etwas mitarbeiten und Hirn einschalten musst du schon...

danke für eure Geduld .
ich seh schon das wird wieder eine "never ending story"

Grüße Uwe
Bitte warten ..
Mitglied: mclonger
06.01.2014 um 17:53 Uhr
ok gefunden...
mein Laufwerk heisst Z was ich noch bei dir abgeändert habe.
es kommt aber ein fehler.


Get-ChildItem : Das Laufwerk wurde nicht gefunden. Ein Laufwerk mit dem Namen " H" ist nicht vorhanden.
Bei Zeile:9 Zeichen:14

$images = dir <<<< "$imageDir\*.jpg" | ?{$_.PSIsContainer -eq $false}

+ CategoryInfo : ObjectNotFound: ( H:String) [Get-ChildItem], DriveNotFoundException
+ FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand

3
4
5
6
Sie können keine Methode für einen Ausdruck mit dem Wert NULL aufrufen.
Bei Zeile:29 Zeichen:38

$image.CreationTime.ToShortDateString <<<< ()

+ CategoryInfo : InvalidOperation: (ToShortDateString:String) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull

7
New-Item : Das Laufwerk wurde nicht gefunden. Ein Laufwerk mit dem Namen " H" ist nicht vorhanden.
Bei Zeile:38 Zeichen:24

$scriptCmd = {& <<<< $wrappedCmd -Type Directory @PSBoundParameters }

+ CategoryInfo : ObjectNotFound: ( H:String) [New-Item], DriveNotFoundException
+ FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.NewItemCommand

8
Move-Item : Das Argument kann nicht an den Parameter "Path" gebunden werden, da es NULL ist.
Bei Zeile:39 Zeichen:24

Move-Item -Path <<<< $image.FullName -Destination $dateFolder -Force

+ CategoryInfo : InvalidData: ( [Move-Item], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.MoveItemCommand

9
10
11
Get-ChildItem : Das Laufwerk wurde nicht gefunden. Ein Laufwerk mit dem Namen " H" ist nicht vorhanden.
Bei Zeile:54 Zeichen:4

dir <<<< "$imageDir\*" -Recurse | ?{$_.CreationTime -lt (get-date).AddDays(-14)} | Remove-Item

+ CategoryInfo : ObjectNotFound: ( H:String) [Get-ChildItem], DriveNotFoundException
+ FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
Bitte warten ..
Mitglied: colinardo
06.01.2014 um 17:55 Uhr
dann hast du das Script in der Admin-Konsole ausgeführt, dort ist das Netzlaufwerk das von deinem User aus verbunden wurde nicht verfügbar ....mach es also in einer normalen User-Powershell-Konsole
Bitte warten ..
Mitglied: mclonger
06.01.2014 um 18:09 Uhr
ok habe es denk ich so gemacht.
aber ->

PS C:\> $imageDir = " Z:\KAMERA"
$images = dir "$imageDir\*.jpg" | ?{$_.PSIsContainer -eq $false}
foreach ($image in $images){
if ($image.CreationTime -lt (get-date "00:00:00")){
$dateFolder ="$imageDir\$($image.CreationTime.ToShortDateString())"
if (!(test-path $dateFolder)) {mkdir $dateFolder | out-null}
Move-Item -Path $image.FullName -Destination $dateFolder -Force
"$imageDir\*" -Recurse | ?{$_.CreationTime -lt (get-date).AddDays(-14)} | Remove-Item

Sie müssen auf der rechten Seite des Operators "-" einen Wertausdruck angeben.
At line:8 char:15

Unerwartetes Token "Recurse" im Ausdruck oder in der Anweisung.
At line:8 char:16

Ein leeres Pipeelement ist nicht zulässig.
At line:8 char:24

Fehlende schließende "}" im Anweisungsblock.
At line:9 char:1

Fehlende schließende "}" im Anweisungsblock.
At line:9 char:1
Bitte warten ..
Mitglied: colinardo
06.01.2014, aktualisiert um 18:13 Uhr
Zitat von mclonger:
ok habe es denk ich so gemacht.
oh je, das geht natürlich nicht, kopiere das Script in eine Textdatei und gebe Ihr die Endung .ps1. Dann speicherst du das ganze und machst einen Rechtsklick auf das Script > Mit Powershell ausführen. Oder in einer Powershell-Konsole den Pfad zur PS1-Datei eingeben und Enter drücken ...
Bitte warten ..
Mitglied: mclonger
06.01.2014 um 18:21 Uhr
habe ich gemacht ->

PS C:\Users\Marcel> C:\Users\Marcel\Desktop\.ps1
Sie müssen auf der rechten Seite des Operators "-" einen Wertausdruck angeben.
Bei C:\Users\Marcel\Desktop\.ps1:8 Zeichen:16

"$imageDir\*" - <<<< Recurse | ?{$_.CreationTime -lt (get-date).AddDays(-14)} | Remove-Item

+ CategoryInfo : ParserError: ( [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : ExpectedValueExpression

bitte nicht verzweifeln
Bitte warten ..
Mitglied: colinardo
06.01.2014, aktualisiert um 18:27 Uhr
Zitat von mclonger:

habe ich gemacht ->
hoffentlich hast du das Script über die Funktion "Quelltext" hier im Forum kopiert ...
oder dir ist da ein Leerzeichen reingerutscht > zwischen dem Bindestrich und Recurse, denn hier geht das Script einwandfrei, ich mach das ja nicht zum ersten mal Maestro ...
Bitte warten ..
Mitglied: mclonger
06.01.2014 um 18:42 Uhr
ja das habe ich über quelltext kopiert -> Editor -> speichern .ps1 -> öffnen im Powershell -> Script ausführen -> fehler
und kein Leerzeichen zw Bindestrich und recurse

PS C:\Users\Marcel> C:\Users\Marcel\Desktop\.ps1
Sie können keine Methode für einen Ausdruck mit dem Wert NULL aufrufen.
Bei C:\Users\Marcel\Desktop\.ps1:6 Zeichen:38

$image.CreationTime.ToShortDateString <<<< ()

+ CategoryInfo : InvalidOperation: (ToShortDateString:String) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull

Move-Item : Das Argument kann nicht an den Parameter "Path" gebunden werden, da es NULL ist.
Bei C:\Users\Marcel\Desktop\.ps1:8 Zeichen:24

Move-Item -Path <<<< $image.FullName -Destination $dateFolder -Force

+ CategoryInfo : InvalidData: ( [Move-Item], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.MoveItemCommand
Bitte warten ..
Mitglied: colinardo
06.01.2014 um 18:45 Uhr
Zitat von mclonger:

ja das habe ich über quelltext kopiert -> Editor -> speichern .ps1 -> öffnen im Powershell -> Script
ausführen -> fehler
und kein Leerzeichen zw Bindestrich und recurse
ahh wahrscheinlich hast du noch Powershell 2.0 oder kleiner muss das damit gerade mal testen, hab das hier mit PS 3.0 getestet.
Bitte warten ..
Mitglied: mclonger
06.01.2014 um 18:50 Uhr
ja du hast recht, ich habe die 2.0
Bitte warten ..
Mitglied: colinardo
06.01.2014, aktualisiert um 18:57 Uhr
Zitat von mclonger:
ja du hast recht, ich habe die 2.0
hier geht es einwandfrei auch unter PS 2.0 du musst noch irgendwas falsch machen, was ich jetzt nicht sehen kann. Hoffentlich hast du keinen Backslash am Ende des Pfades angegeben ...
Bitte warten ..
Mitglied: mclonger
06.01.2014 um 19:01 Uhr
mist ... ich weiss nicht weiter. kann evtl sowas über teamviewer machen?
Bitte warten ..
Mitglied: colinardo
06.01.2014 um 19:03 Uhr
Zitat von mclonger:

mist ... ich weiss nicht weiter. kann evtl sowas über teamviewer machen?
schick die ID und PW mit einer Personal Message hier im Forum ...
Bitte warten ..
Mitglied: AnkhMorpork
07.01.2014 um 08:13 Uhr
Zitat von mclonger:

habe ich gemacht ->

PS C:\Users\Marcel> C:\Users\Marcel\Desktop\.ps1

Hallo,
mal ne Zwischenfrage zum Verständnis: Rufst du das Script wirklich so auf? Ich meine, wo ist der Dateiname des Scripts?
Oder verstehe ich das falsch?

Gruß

ANKH
Bitte warten ..
Mitglied: colinardo
07.01.2014 um 08:45 Uhr
Zitat von AnkhMorpork:

> Zitat von mclonger:
>
> habe ich gemacht ->
>
> PS C:\Users\Marcel> C:\Users\Marcel\Desktop\.ps1

Hallo,
mal ne Zwischenfrage zum Verständnis: Rufst du das Script wirklich so auf? Ich meine, wo ist der Dateiname des Scripts?
Oder verstehe ich das falsch?

Gruß

ANKH
hat sich inzwischen geklärt, die ExecutionPolicy war noch nicht richtig für den aktuellen User gesetzt ...
Bitte warten ..
Mitglied: mclonger
07.01.2014 um 17:16 Uhr
ich habe es nun mal laufen lassen, aber ich muss für jeden unterordner ein extra script schreiben?
und wenn das beendet ist bleibt immer dieses Taskfenster offen

Mit freundlichen Grüßen
Bitte warten ..
Mitglied: colinardo
07.01.2014, aktualisiert um 17:20 Uhr
Zitat von mclonger:

ich habe es nun mal laufen lassen, aber ich muss für jeden unterordner ein extra script schreiben?
und wenn das beendet ist bleibt immer dieses Taskfenster offen
nö ich habe dir doch gestern die erweiterte Variante geschickt die alle Ordner in der Ebene Z:\KAMERA automatisch durchläuft... deine Fritte ist zu langsam für die Menge an Files deswegen sieht das so aus als würde es in einem loop laufen ...
Bitte warten ..
Mitglied: mclonger
07.01.2014 um 17:22 Uhr
? wo ? bin ich blind?
Bitte warten ..
Mitglied: colinardo
07.01.2014, aktualisiert um 17:24 Uhr
Zitat von mclonger:

? wo ? bin ich blind?
schau mal in deine personal messages hier im Forum !
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Vmware
gelöst Manche VMs lassen sich nicht in Ordner verschieben (3)

Frage von Zippo97 zum Thema Vmware ...

Batch & Shell
gelöst Dateien anhand des Namens in neue Ordner verschieben (17)

Frage von Cookiemonster zum Thema Batch & Shell ...

Outlook & Mail
gelöst Outlook 2010 Dateianhänge von bestimmten Exchange Mails in Ordner verschieben (5)

Frage von Kineas zum Thema Outlook & Mail ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (24)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Erkennung und -Abwehr
Spam mit eigener Domain (12)

Frage von NoobOne zum Thema Erkennung und -Abwehr ...