Finalize seus blocos if com fi
Encerre seus loops com done
Cada if
deve ser correspondido por um fi
e cada do
deve ser correspondido por um done
.
Eu criei um script bash para criar dump de repositórios svn. Eu quero adicionar essa funcionalidade que depois de despejo de cada script de repositório enviá-lo para o servidor remoto usando rsync e excluir do local de despejo e depois que começa a fazer o despejo do próximo repositório. Eu estou usando o seguinte script.
O scripttem alguns erros que me ajudam a melhorá-lo.
#!/bin/sh
# Record todays date
# --------------------
bakdate=$(date +%Y%m%d)
echo "--------------------------------"
echo "Running SVN backup $bakdate"
echo "--------------------------------\n"
# From where to backup repos?
# ---------------------------
svnrepos="/kk/svn/"
echo "\nGoing to backup all SVN repos located at: $svnrepos \n"
# Where to save the dump?
# ------------------------
bakdest="/save/"
# Location of remote server (to copy backup)
# ----------------------------------------
baktoremote="[email protected]:/kk"
cd $svnrepos
# Just make sure we have write access to backup-folder
if [ -d "$bakdest" ] && [ -w "$bakdest" ] ; then
# Now $repo has folder names = project names
for repo in *; do
# do svn dump for each project
echo "Taking backup/svndump for: $repo"
echo "Executing : svnadmin dump $repo >
$bakdest/$repo-$bakdate.dump \n"
# Now finally execute the backup
svnadmin dump $repo > $bakdest/$repo-$bakdate.dump
# Just make sure we have write access to backup-folder
if [ -d "$bakdest" ] && [ -w "$bakdest" ] ; then
# Now $repo has folder names = project names
for repo in *; do
# do svn dump for each project
echo "Taking backup/svndump for: $repo"
echo "Executing : svnadmin dump $repo >
$bakdest/$repo-$bakdate.svn.dump \n"
# Now finally execute the backup
svnadmin dump $repo > $bakdest/$repo-$bakdate.dump
# sent it to remote server
rsync -avP $bakdest/$repo-$bakdate.dump $baktoremote
# delete repository after sending
rm -rf $repo-$bakdate.dump
fi
Tags bash subversion