workaround for cp not having the -l option on Solaris and OS X: SOLR-282

git-svn-id: https://svn.apache.org/repos/asf/lucene/solr/trunk@555612 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
William Au 2007-07-12 12:35:01 +00:00
parent 1fec553e28
commit 7a7d05c27b
9 changed files with 101 additions and 24 deletions

View File

@ -131,13 +131,18 @@ then
logExit failed 1
fi
# check status of commit request
# check status of commit request - original format
echo $rs | grep '<result.*status="0"' > /dev/null 2>&1
if [[ $? != 0 ]]
then
logMessage commit request to Solr at ${curl_url} failed:
logMessage $rs
logExit failed 2
# check status of commit request - new format
echo $rs | grep '<lst name="responseHeader"><int name="status">0</int>' > /dev/null 2>&1
if [[ $? != 0 ]]
then
logMessage commit request to Solr at ${curl_url} failed:
logMessage $rs
logExit failed 2
fi
fi
# successful commit creates a snapshot file synchronously
@ -170,7 +175,16 @@ trap 'echo cleaning up, please wait ...;/bin/rm -rf ${data_dir}/${name} ${data_d
# make a backup using hard links into temporary location
# then move it into place atomically
cp -lr ${lastsnap} ${data_dir}/${temp}
if [[ "${OS}" == "SunOS" || "${OS}" == "Darwin" ]]
then
orig_dir=$(pwd)
mkdir ${data_dir}/${temp}
cd ${lastsnap}
find . -print|cpio -pdlmu ${data_dir}/${temp} 1>/dev/null 2>&1
cd ${orig_dir}
else
cp -lr ${lastsnap} ${data_dir}/${temp}
fi
mv ${data_dir}/${temp} ${data_dir}/${name}
logExit ended 0

View File

@ -131,13 +131,18 @@ then
logExit failed 1
fi
# check status of optimize request
# check status of optimize request - original format
echo $rs | grep '<result.*status="0"' > /dev/null 2>&1
if [[ $? != 0 ]]
then
logMessage optimize request to Solr at ${curl_url} failed:
logMessage $rs
logExit failed 2
# check status of optimize request - new format
echo $rs | grep '<lst name="responseHeader"><int name="status">0</int>' > /dev/null 2>&1
if [[ $? != 0 ]]
then
logMessage optimize request to Solr at ${curl_url} failed:
logMessage $rs
logExit failed 2
fi
fi
# successful optimize creates a snapshot file synchronously
@ -170,7 +175,16 @@ trap 'echo cleaning up, please wait ...;/bin/rm -rf ${data_dir}/${name} ${data_d
# make a backup using hard links into temporary location
# then move it into place atomically
cp -lr ${lastsnap} ${data_dir}/${temp}
if [[ "${OS}" == "SunOS" || "${OS}" == "Darwin" ]]
then
orig_dir=$(pwd)
mkdir ${data_dir}/${temp}
cd ${lastsnap}
find . -print|cpio -pdlmu ${data_dir}/${temp} 1>/dev/null 2>&1
cd ${orig_dir}
else
cp -lr ${lastsnap} ${data_dir}/${temp}
fi
mv ${data_dir}/${temp} ${data_dir}/${name}
logExit ended 0

View File

@ -101,7 +101,16 @@ logMessage making backup ${data_dir}/${name}
# make a backup using hard links into temporary location
# then move it into place atomically
cp -lr ${data_dir}/index ${data_dir}/${temp}
if [[ "${OS}" == "SunOS" || "${OS}" == "Darwin" ]]
then
orig_dir=$(pwd)
mkdir ${data_dir}/${temp}
cd ${data_dir}/index
find . -print|cpio -pdlmu ${data_dir}/${temp} 1>/dev/null 2>&1
cd ${orig_dir}
else
cp -lr ${data_dir}/index ${data_dir}/${temp}
fi
mv ${data_dir}/${temp} ${data_dir}/${name}
logExit ended 0

View File

@ -116,13 +116,18 @@ then
logExit failed 1
fi
# check status of commit request
# check status of commit request - original format
echo $rs | grep '<result.*status="0"' > /dev/null 2>&1
if [[ $? != 0 ]]
then
logMessage commit request to Solr at ${curl_url} failed:
logMessage $rs
logExit failed 2
# check status of commit request - new format
echo $rs | grep '<lst name="responseHeader"><int name="status">0</int>' > /dev/null 2>&1
if [[ $? != 0 ]]
then
logMessage commit request to Solr at ${curl_url} failed:
logMessage $rs
logExit failed 2
fi
fi
logExit ended 0

View File

@ -117,13 +117,18 @@ then
logExit failed 1
fi
# check status of optimize request
# check status of optimize request - original format
rc=`echo $rs|cut -f2 -d'"'`
if [[ $? != 0 ]]
then
logMessage optimize request to Solr at ${curl_url} failed:
logMessage $rs
logExit failed 2
# check status of optimize request - new format
echo $rs | grep '<lst name="responseHeader"><int name="status">0</int>' > /dev/null 2>&1
if [[ $? != 0 ]]
then
logMessage optimize request to Solr at ${curl_url} failed:
logMessage $rs
logExit failed 2
fi
fi
logExit ended 0

View File

@ -21,6 +21,7 @@ export PATH=/sbin:/usr/sbin:/bin:/usr/bin:$PATH
# set up variables
prog=${0##*/}
OS=`uname`
# source the config file if present
confFile=${solr_root}/conf/scripts.conf

View File

@ -141,9 +141,20 @@ fi
# install using hard links into temporary directory
# remove original index and then atomically copy new one into place
logMessage installing snapshot ${name}
cp -lr ${name}/ ${data_dir}/index.tmp$$ && \
/bin/rm -rf ${data_dir}/index && \
mv -f ${data_dir}/index.tmp$$ ${data_dir}/index
if [[ "${OS}" == "SunOS" || "${OS}" == "Darwin" ]]
then
orig_dir=$(pwd)
mkdir ${data_dir}/index.tmp$$ && \
cd ${name} && \
find . -print|cpio -pdlmu ${data_dir}/index.tmp$$ 1>/dev/null 2>&1 && \
/bin/rm -rf ${data_dir}/index && \
mv -f ${data_dir}/index.tmp$$ ${data_dir}/index
cd ${orig_dir}
else
cp -lr ${name}/ ${data_dir}/index.tmp$$ && \
/bin/rm -rf ${data_dir}/index && \
mv -f ${data_dir}/index.tmp$$ ${data_dir}/index
fi
# update distribution stats
echo ${name} > ${solr_root}/logs/snapshot.current

View File

@ -200,7 +200,16 @@ fi
# take a snapshot of current index so that only modified files will be rsync-ed
# put the snapshot in the 'work-in-progress" directory to prevent it from
# being installed while the copying is still in progress
cp -lr ${data_dir}/index ${data_dir}/${name}-wip
if [[ "${OS}" == "SunOS" || "${OS}" == "Darwin" ]]
then
orig_dir=$(pwd)
mkdir ${data_dir}/${name}-wip
cd ${data_dir}/index
find . -print|cpio -pdlmu ${data_dir}/${name}-wip 1>/dev/null 2>&1
cd ${orig_dir}
else
cp -lr ${data_dir}/index ${data_dir}/${name}-wip
fi
# force rsync of segments and .del files since we are doing size-only
if [[ -n ${sizeonly} ]]
then

View File

@ -102,7 +102,16 @@ logMessage taking snapshot ${name}
# take a snapshot using hard links into temporary location
# then move it into place atomically
cp -lr ${data_dir}/index ${temp}
if [[ "${OS}" == "SunOS" || "${OS}" == "Darwin" ]]
then
orig_dir=$(pwd)
mkdir ${temp}
cd ${data_dir}/index
find . -print|cpio -pdlmu ${temp} 1>/dev/null 2>&1
cd ${orig_dir}
else
cp -lr ${data_dir}/index ${temp}
fi
mv ${temp} ${name}
logExit ended 0