Bash script Backup local profile

Status
Für weitere Antworten geschlossen.

Scirocco

Benutzer
Mitglied seit
16. Feb 2015
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Hi zusammen,

beiliegendes Script funktioniert fehlerfrei auf der Console (unter root) - binde ich es jedoch in den Taskplaner ein (und lasse es auch unter root ausführen) wird die Variable $HOME nicht aufgelöst
und der tar/gz Befehl läuft in's leere bzw. greift auf "/" zu.
Rich (BBCode):
#!/opt/bin/bash
#
# 

clear

DATE=`/bin/date +%Y-%m-%d_%H%M%S`
DATE0=$(date +%Y-%m-%d)
DATE1=$(date +%d-%m-%Y_%H_%M)
DATE2=$(date +%d-%m-%Y)
DATE3=$(date +%m-%Y)

SCRIPTNAME=`basename "$0"`
HOSTNAME=`hostname`
MyUsername=`whoami`

CURRENTPATH=`pwd`

MyBackupPath=/volume1/backup_local/$SCRIPTNAME/$DATE0
MyBackupfile=${DATE}_$HOSTNAME
MyLogfile=${MyBackupfile}.log

# usage () {
#   echo -e "Usage: $SCRIPTNAME [-l | -f | -e | -h]\n"
# }

# Basic sanity checks.  Running as root.  One Parameter only.
# [[ "`id -u`" =  "0" ]] || ( echo "Root only"; exit 1 )
# [[ $# -ne 1 ]] && ( usage; exit 1 )

if [ ! -d $MyBackupPath ]; then
  mkdir -p $MyBackupPath
fi

echo -e "\aScriptname   : " $SCRIPTNAME
echo -e "\aHostname     : " $HOSTNAME
echo -e "\aUsername     : " $MyUsername
echo -e "\aProfile      : " $HOME
echo -e "\aBackup Path  : " $MyBackupPath
echo -e "\aBackup File  : " $MyBackupfile.tgz

echo -e "\aScriptname   : " $SCRIPTNAME>> $MyBackupPath/$MyLogfile
echo -e "\aHostname     : " $HOSTNAME>> $MyBackupPath/$MyLogfile
echo -e "\aUsername     : " $MyUsername>> $MyBackupPath/$MyLogfile
echo -e "\aProfile      : " $HOME>> $MyBackupPath/$MyLogfile
echo -e "\aBackup Path  : " $MyBackupPath>> $MyBackupPath/$MyLogfile
echo -e "\aBackup File  : " $MyBackupfile.tgz>> $MyBackupPath/$MyLogfile
echo -e "\aCurrent Path : " $CURRENTPATH>> $MyBackupPath/$MyLogfile

# With no parameters we list the currently mounted devices
# if [ -z "$1" ]
# then
#   # Listing mounted USB Drives
#   /usr/syno/bin/synousbdisk -enum>> $MyBackupPath/$MyLogfile
#   exit 0
# fi

rm -f $MyBackupPath/$MyBackupfile.{tar,tar.gz,tgz,lst}

cd $HOME

echo -e "\a"

echo -e "backup to archive \"$MyBackupPath/${MyBackupfile}.tgz\""
echo -e "tar & gzip of \"$HOME\""
echo -e "Lisfile : $MyBackupPath/$MyBackupfile.lst"

ls -lFaR $HOME/ >> $MyBackupPath/$MyBackupfile.lst
# tar cfvp - $HOME/ | gzip -vf9 > $MyBackupPath/${MyBackupfile}.tgz

echo -e "\a"
 

dil88

Benutzer
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
31.058
Punkte für Reaktionen
2.565
Punkte
829
Wenn ein Skript über den cron läuft, dann fehlt das Environment, das man sonst in einer persönlichen Shell vorfindet. Entweder setzt Du $HOME selbst in Deinem Skript oder Du lädst eine .profile zu Beginn beispielsweise mittels ". /root/.profile".
 

Scirocco

Benutzer
Mitglied seit
16. Feb 2015
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Hi, danke für die prompte Antwort. Das Leben kann so einfach sein ;-) Jetzt kommen die Erinnerungen wieder hoch... ich kämpfe mich durch meine alten Sourcen aus der Solaris-Zeit an der Uni ;-). Danke Dir und Gruss Gunnar
 

dil88

Benutzer
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
31.058
Punkte für Reaktionen
2.565
Punkte
829
Hehehe, sehr schön. Wenn nochmal 'was hakt, melde Dich. Und btw: Willkommen im Forum, Gunnar! :)
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat