man 7 glob
tar -cf - verz1 verz2 >/dev/null
Evtl noch eine Erklärung dazu damit man daraus lernen kann?
man find
man print
man xargs
Finde inCode:find /path/to/ -type d -mindepth 1 -maxdepth 1 ! \( -iname "foo" -o -iname "bar" \) -print0 | xargs -0
/path/to/
nur Verzeichnisse (-type d
) die min/max (-mindepth 1 -maxdepth 1
) eine Ebene tiefer liegen und nicht foo/Foo/FOo/... oder bar/bAr/baR/... (! \( -iname "foo" -o -iname "bar" \)
) heissen und liste sie in einer einzelnen Zeile mit \0 als Trenner auf (-print0
) und ersetze die \0 durch ein Leerzeichen (| xargs -0
).tar czfv $FULLNAME ${verzeichnis}/htdocs
*
in Deinem for
würde auch Files, Symlinks, Block/Characterdevices, Pipes und Sockets einschliessen, was durchaus sicherheitsrelevant werden kann. Daher beschränkt sich der find
nur auf Verzeichnisse, was gemäss Deiner Variablenbenennung ohnehin so gewollt ist.find
deutlich performanter und sicherer.Wenn Du nurDamit spar ich mri das excluden. Soltle doch so auch passen oder?
htdocs
packen willst, dann ja.find /path/to/ -type d -mindepth 1 -maxdepth 1 -print0 | xargs -0
#!/bin/sh
SUFFIX="tar.gz"
##DATE=`date +"%d.%m.%Y"`
DATE="30.05.2022"
#FULLNAME="$DATE.$SUFFIX"
# taegliche sicherung: 7days ago - 7 backups rueckhalt
# woechentliche sicherung: 21days ago - 3 backups rueckhalt
DELDATE=`date +"%d.%m.%Y" -d "21days ago"`
#DELFILE="$DELDATE.$SUFFIX"
cd /var/www
for d in `find /var/www/ -type d -mindepth 1 -maxdepth 1 ! \( -iname "html" -o -iname "webalizer" -o -iname "web_sqldumper" -o -iname "lost+found" \) -print0 | xargs -0`;
do
echo "${verzeichnis}" >> /root/verzeichnisse.txt
# backupt das verzeichnis
FULLNAME="$DATE.${verzeichnis}.$SUFFIX"
tar czfv $FULLNAME ${verzeichnis}/htdocs
DELFILE="${DELDATE}.${verzeichnis}.$SUFFIX"
# verzeichnistransfer auf den ftp
lftp <<-SCRIPT
set ftp:ssl-auth TLS
set ssl:verify-certificate no
open ftp://10.10.10.12:21
user username passwort
cd home
rm $DELFILE
put $FULLNAME
exit
SCRIPT
rm -f $FULLNAME
done
rm /root/verzeichnisse.txt
verzeichnisse.txt
#!/bin/sh
SUFFIX="tar.gz"
DATE=`date +"%d.%m.%Y"`
DELDATE=`date +"%d.%m.%Y" -d "21days ago"`
for d in `find /var/www/ -type d -mindepth 1 -maxdepth 1 ! \( -iname "html" -o -iname "webalizer" -o -iname "web_sqldumper" -o -iname "lost+found" \) -print0 | xargs -0`;
do
FULLNAME="${DATE}.${d}.${SUFFIX}"
tar czfv ${FULLNAME} ${d}/htdocs
DELFILE="${DELDATE}.${d}.${SUFFIX}"
lftp <<-SCRIPT
set ftp:ssl-auth TLS
set ssl:verify-certificate no
open ftp://10.10.10.12:21
user username passwort
cd home
rm ${DELFILE}
put ${FULLNAME}
exit
SCRIPT
rm -f ${FULLNAME}
done
We use essential cookies to make this site work, and optional cookies to enhance your experience.