HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials

HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials (http://www.howtoforge.com/forums/index.php)
-   Programming/Scripts (http://www.howtoforge.com/forums/forumdisplay.php?f=7)
-   -   Shell Script backup a file HELP (http://www.howtoforge.com/forums/showthread.php?t=20071)

anything 2nd February 2008 19:51

Shell Script backup a file HELP
 
could you please find a solution for this

script that backup a file. The file name to backup should be provided as input parameter, the backup file should have the same file name with the extension ".bak". If the user provides no input parameter, the script should display an error message. If there is an input file name, but it does not exist, the script should display an error message. If the input file exists, the script should create the backup file and overwrite any existing backup file with the same name.

topdog 3rd February 2008 14:50

Code:

#!/bin/bash
#
# Andrew <andrew@topdog.za.net>
# Quick dirty script to backup a file
# 03-02-2008
#

if [[ "$1" = "" || "$1" = "--help" ]]; then
        echo " Usage: $0 <file to backup>"
        echo ""
        exit 1
fi

if [ ! -r $1 ]; then
        echo "The file $1 does not exist"
        echo ""
        exit 1
fi
#work around for systems with cp -i alias
aliased=0
j=$(alias | grep cp &>/dev/null)
if [ "$?" = "0" ]; then
        i=$(alias cp | grep '\-i' &>/dev/null)
        if [ "$?" = "0" ]; then
                aliased=1
                unalias cp
        fi
fi
# actual copy
cp -a $1 $1.bak
if [ $aliased = "1" ]; then
        alias cp='cp -i'
fi


anything 4th February 2008 16:04

thank you, but can you add a massage inform that the backup is successfully created, when it do. and please could you give me a little explanation of it, I am really beginner on it. I need to understand the code.

thanks

topdog 4th February 2008 16:48

Quote:

Originally Posted by anything
thank you, but can you add a massage inform that the backup is successfully created, when it do. and please could you give me a little explanation of it, I am really beginner on it. I need to understand the code.

thanks

Comments are inline
Code:

#!/bin/bash
#
# Andrew <andrew@topdog.za.net>
# Quick dirty script to backup a file
# 03-02-2008
#

#check if any option was passed or --help
if [[ "$1" = "" || "$1" = "--help" ]]; then
        echo " Usage: $0 <file to backup>"
        echo ""
        exit 1
fi

#check if file exists
if [ ! -r $1 ]; then
        echo "The file $1 does not exist"
        echo ""
        exit 1
fi
#work around for systems with cp -i alias
aliased=0
j=$(alias | grep cp &>/dev/null)
if [ "$?" = "0" ]; then
        i=$(alias cp | grep '\-i' &>/dev/null)
        if [ "$?" = "0" ]; then
                aliased=1
                unalias cp
        fi
fi
# actual copy
cp -a $1 $1.bak
if [ "$?" = "0" ]; then
        echo "The file $1 has been backed up !"
fi

#set alias back
if [ $aliased = "1" ]; then
        alias cp='cp -i'
fi


anything 5th February 2008 18:09

thank you very mush, it was very helpful

can you see this topic, just this
http://www.howtoforge.com/forums/showthread.php?t=20115


All times are GMT +2. The time now is 14:03.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.