Bash脚本备份配置文件中指定的多个目录



我在这方面遇到了一些困难。基本上,我需要一个bash脚本来备份存储在配置文件中的可变数量的目录。

我确信我需要从配置文件中导入列表,然后使用循环复制所有目录。我让它为一个目录工作。我的代码在下面。我已经把它减少到最低限度了。

#!/bin/sh
if [ ! -f ./backup.conf ]
then
echo "Configuration file not found. Exiting!!"
exit
fi
. ./backup.conf
unset PATH
# make sure we're running as root
if (( `$ID -u` != 0 )) ; then { $ECHO "Sorry, must be root.  Exiting..."; exit; } fi ;
# attempt to remount the RW mount point as RW; else abort
$MOUNT -o remount,rw $SOURCEFILE $DESTINATIONFOLDER ;
if (( $? )); then
{
$ECHO "snapshot: could not remount $DESTINATIONFOLDER readwrite";
exit;
}
fi ;
# step 2: create new backup folder:
$MKDIR $FULLPATH

**Loop should go here**
#copy source directories to backup folder
$RSYNC                              
-va --delete --delete-excluded              
--exclude-from="$EXCLUDES"              
$SOURCEFILE $FULLPATH;

配置文件如下

SOURCE=path
DESTINATION=path2
BACKUPFOLDERNAME=/laptopBackup

我的问题是完成这项任务的最佳方法是什么。即,我应该如何格式化配置文件以将可变数量的路径导入数组?或者有更好的方法吗?

我个人的做法略有不同,我的配置文件更像是一个"控制文件"。例如:

/path       /path2     /laptopBackup
/tmp        /test      /bigmachine

等等。。每个装载1行,每行3个字段(源、目的地、备份文件夹名)

然后使用类似的东西:

while read SOURCE DESTINATION BACKUPFOLDERNAME
do
<stuff>
done < ${configfile}

(把猫移走,以免自己进一步丢脸:)

最新更新