Avatar billede hemberg Forsker
30. november 2017 - 14:03

BASH script driller

Hej all,

Jeg har et problem med følgende script linie OG noget med noget IF/FI der åbenbart fejler. Hele scriptet skulle gerne lave en backup af min raspberry pi/orange pi. Men det driller.

[code]
#!/bin/bash
# Setting up directories
SUBDIR=orangepione_backup
DIR=/media/backup-synology/ph-orangepione/$SUBDIR
echo "Starting RaspberryPI backup process!"
# First check if pv package is installed, if not, install it first
PACKAGESTATUS=`dpkg -s pv | grep Status`;
if [[ $PACKAGESTATUS == S* ]]
  then
      echo "Package 'pv' is installed."
  else
      echo "Package 'pv' is NOT installed."
      echo "Installing package 'pv'. Please wait..."
      apt-get -y install pv
fi
# Check if backup directory exists
if [ ! -d "$DIR" ];
  then
      echo "Backup directory $DIR doesn't exist, creating it now!"
      mkdir $DIR
fi
# Create a filename with datestamp for our current backup (without .img suffix)
OFILE="$DIR/backup_$(date +%d%m%Y_%H%M%S)"
# Create final filename, with suffix
OFILEFINAL=$OFILE.img
# First sync disks
sync; sync
# Shut down some services before starting backup process
echo "Stopping some services before backup."
service apache2 stop
service mysql stop
service cron stop
# Begin the backup process, should take about 1 hour from 8Gb SD card to HDD
echo "Backing up SD card to USB HDD."
echo "This will take some time depending on your SD card size and read performance. Please wait..."
SDSIZE=`blockdev --getsize64 /dev/mmcblk0`;
pv -tpreb /dev/mmcblk0 -s $SDSIZE | dd of=$OFILE --exclude=/temp --exclude=/lost+found --exclude=/media/backup-synology/ bs=1M conv=sync,noerror iflag=fullblock
# Wait for DD to finish and catch result
RESULT=$?
# Start services again that where shutdown before backup process
echo "Start the stopped services again."
service apache2 start
service mysql start
service cron start
# If command has completed successfully, delete previous backups and exit
if [ $RESULT = 0 ];
  then
      echo "Successful backup, previous backup files will be deleted."
      rm -f $DIR/backup_*.tar.gz
      mv $OFILE $OFILEFINAL
      echo "Backup is being tarred. Please wait..."
      tar zcf $OFILEFINAL.tar.gz $OFILEFINAL
      rm -rf $OFILEFINAL
      echo "RaspberryPI backup process completed! FILE: $OFILEFINAL.tar.gz"
      exit 0
      # Else remove attempted backup file
  else
      echo "Backup failed! Previous backup files untouched."
      echo "Please check there is sufficient space on the HDD."
      rm -f $OFILE
      echo "RaspberryPI backup process failed!"
      exit 1
fi
[/code]

Fejlkode:
Syntax error: end of file unexpected (expecting "then")

Men jeg kan simpelthen ikke se hvor jeg mangler en then. Og jeg syntes også, at jeg får lukket scriptet ordentlig af med diverse exit koder.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester