You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by bi...@apache.org on 2006/03/21 21:25:56 UTC

svn commit: r387614 - /incubator/solr/trunk/src/scripts/backup

Author: billa
Date: Tue Mar 21 12:25:55 2006
New Revision: 387614

URL: http://svn.apache.org/viewcvs?rev=387614&view=rev
Log:
added command line args for configuration

Modified:
    incubator/solr/trunk/src/scripts/backup

Modified: incubator/solr/trunk/src/scripts/backup
URL: http://svn.apache.org/viewcvs/incubator/solr/trunk/src/scripts/backup?rev=387614&r1=387613&r2=387614&view=diff
==============================================================================
--- incubator/solr/trunk/src/scripts/backup (original)
+++ incubator/solr/trunk/src/scripts/backup Tue Mar 21 12:25:55 2006
@@ -1,44 +1,51 @@
 #!/bin/bash
 #
-# $Id$
-# $Source: /cvs/main/searching/solr-tools/backup.template,v $
-# $Name: r20050725_standardized_server_enabled $
+# Copyright 2006 The Apache Software Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
 #
 # Shell script to make a backup of a Solr Lucene collection.
 
-export PATH=/sbin:/usr/sbin:/bin:/usr/bin:$PATH
-
-# sudo to app user if necessary
-if [[ $(whoami) != app ]]
-then
-    sudo -u app $0 "$@"
-    exit $?
-fi
-
-oldwhoami=$(who -m | cut -d' ' -f1 | sed -e's/^.*!//')
+orig_dir=$(pwd)
+cd ${0%/*}/..
+solr_root=$(pwd)
+cd ${orig_dir}
 
-if [[ "${oldwhoami}" == "" ]]
-then
-  oldwhoami=`ps h -Hfp $(pgrep -g0 ${0##*/}) | tail -1|cut -f1 -d" "`
-fi
+unset data_dir user verbose
+. ${solr_root}/bin/scripts-util
 
 # set up variables
 prog=${0##*/}
-log=logs/${prog}.log
+log=${solr_root}/logs/${prog}.log
 
 # define usage string
 USAGE="\
-usage: $prog [ -v ]
+usage: $prog [-d dir] [-u username] [-v]
+       -d          specify directory holding index data
+       -u          specify user to sudo to before running script
        -v          increase verbosity
 "
 
-unset verbose
-
 # parse args
-originalargs="$@"
-while getopts v OPTION
+while getopts d:u:v OPTION
 do
     case $OPTION in
+    d)
+        data_dir="$OPTARG"
+        ;;
+    u)
+        user="$OPTARG"
+        ;;
     v)
         verbose="v"
         ;;
@@ -47,59 +54,48 @@
         exit 1
     esac
 done
-shift $(( OPTIND - 1 ))
 
-start=`date +"%s"`
+# user default value for data_dir if not specified
+# relative path starts at ${solr_root}
+if [[ -z ${data_dir} ]]
+then
+    data_dir=${solr_root}/data
+elif [[ "`echo ${data_dir}|cut -c1`" != "/" ]]
+then
+    data_dir=${solr_root}/${data_dir}
+fi
+
+fixUser "$@"
 
-function timeStamp
-{
-    date +'%Y%m%d-%H%M%S'
-}
-
-function logMessage
-{
-    echo $(timeStamp) $@>>$log
-    if [[ -n ${verbose} ]]
-    then
-	echo $@
-    fi
-}
-
-function logExit
-{
-    end=`date +"%s"`
-    diff=`expr $end - $start`
-    echo "$(timeStamp) $1 (elapsed time: $diff sec)">>$log
-    exit $2
-}
+start=`date +"%s"`
 
-cd ${0%/*}/../..
 logMessage started by $oldwhoami
-logMessage command: $0 $originalargs
+logMessage command: $0 $@
+
 name=backup.`date +"%Y%m%d%H%M%S"`
 temp=temp-${name}
 
-if [[ -d ${name} ]]
+if [[ -d ${data_dir}/${name} ]]
 then
-    logMessage backup directory ${name} already exists
+    logMessage backup directory ${data_dir}/${name} already exists
     logExit aborted 1
 fi
 
-if [[ -d ${temp} ]]
+if [[ -d ${data_dir}/${temp} ]]
 then
-    logMessage backingup of ${name} in progress
+    logMessage backingup of ${data_dir}/${name} in progress
     logExit aborted 1
 fi
 
 # clean up after INT/TERM
-trap 'echo cleaning up, please wait ...;/bin/rm -rf ${name} ${temp};logExit aborted 13' INT TERM
+trap 'echo cleaning up, please wait ...;/bin/rm -rf ${data_dir}/${name} ${data_dir}/${temp};logExit aborted 13' INT TERM
 
-logMessage making backup ${name}
+logMessage making backup ${data_dir}/${name}
 
 # make a backup using hard links into temporary location
 # then move it into place atomically
-cp -lr index ${temp}
-mv ${temp} ${name}
+cp -lr ${data_dir}/index ${data_dir}/${temp}
+mv ${data_dir}/${temp} ${data_dir}/${name}
 
 logExit ended 0