Script Fehler.. If [ -s Datei [gelöst]

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Faber38
Beiträge: 380
Registriert: 21.03.2009 23:28:20
Wohnort: Elsdorf

Script Fehler.. If [ -s Datei [gelöst]

Beitrag von Faber38 » 13.02.2021 06:38:49

Guten Morgen,
ich versuche in einem BackupVerzeichnis Dateien zu prüfen ob Sie 0 Byte groß sind um dann eine Meldung zu senden.
andernfalls entsprechend zu verschieben.

Code: Alles auswählen

datei="mysqldump";

cd /etc/xx/backup
if [ -s ${datei}*.gz ] ; then
  echo 'Backupdaten werden werden verschoben' ;
  #ls -1t |tail -n +11|xargs rm -rf ;
 else
  echo 'File mysqldump*.* is empty...i do nothing..repair it !' ;
fi ;
irgentwas klempt da bei der Abfrage if [ -s $datei
ich dachte so könnte ich prüfen ob die Datei ein defektes backup ist (0 byte groß)
Zuletzt geändert von Faber38 am 14.02.2021 07:59:32, insgesamt 1-mal geändert.

Benutzeravatar
Faber38
Beiträge: 380
Registriert: 21.03.2009 23:28:20
Wohnort: Elsdorf

Re: Script Fehler.. If [ -s Datei

Beitrag von Faber38 » 13.02.2021 06:49:06

wenn ich eine einzelne Datei aufrufe funktioniert es...
sind es aber mehrere Dateien..kommt

Code: Alles auswählen

[: mysqldumpxxx.gz: unexpeted operator

Benutzeravatar
Meillo
Moderator
Beiträge: 9241
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Script Fehler.. If [ -s Datei

Beitrag von Meillo » 13.02.2021 08:31:53

Korrekt. `-s' erwartet nur ein einziges Argument. Wenn du mehrere verarbeiten willst, dann musst du das in einer Schleife tun. (Oder viele `-s' verodern.)
Use ed once in a while!

Benutzeravatar
Faber38
Beiträge: 380
Registriert: 21.03.2009 23:28:20
Wohnort: Elsdorf

Re: Script Fehler.. If [ -s Datei

Beitrag von Faber38 » 14.02.2021 07:58:04

so funktionierts ...

Code: Alles auswählen

#!/bin/bash

cd /etc/xxx/backup
for datei in *
do
  if [ -s ${datei} ] ; then
   echo 'Backupdaten werden werden verschoben' ;
   sudo mv /etc/xxx/backup/${datei} /mnt/server/ ;
   cd /mnt/server ;
   sudo ls -1t |tail -n +6|xargs sudo rm -rf ;
   cd /etc/xxx/backup
 else
   echo 'File mysqldump*.* is empty...i do nothing..repair it !' ;
 fi ;
done

Antworten