From: Chris Sharp Date: Fri, 27 Mar 2015 20:33:52 +0000 (-0400) Subject: correcting mistakes X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=4c486a52a08b5e7a27a12d3e04607d2d56504cfd;p=contrib%2Fpines.git correcting mistakes --- diff --git a/oclc/oclc_export_and_ftp.sh b/oclc/oclc_export_and_ftp.sh index 5d32607..742bc17 100755 --- a/oclc/oclc_export_and_ftp.sh +++ b/oclc/oclc_export_and_ftp.sh @@ -23,13 +23,12 @@ DATE=`date +%y%m%d` DATE_LONG=`date +%Y%m%d` PSQL="/usr/bin/psql" PSQL_USER="mydbuser" -SQL_FILE="$WORKDIR/get_ids.sql" DB_HOST="mydbhost" DB_NAME="mydbname" OUTDIR="$WORKDIR/bib_ids" OUTFILE="bib_ids_`date +%F`.out" -if [ -e last_export_date ]; then -BIBDATE=`cat last_export_date` +if [ -e $WORKDIR/last_export_date ]; then +BIBDATE=`cat $WORKDIR/last_export_date` fi EXPORT="DATA.D$DATE" LABEL="LABEL.D$DATE" @@ -40,10 +39,11 @@ MARC_COUNT="$WORKDIR/marccount.pl" CHUNKSIZE=50000 SPLIT_BIB_DIR="$OUTDIR/split" FTP_HOST="my.ftp.host" -FTP_USER="myftpuser" +FTP_USER="myftpusr" FTP_PASS="myftppass" -FTP_PATH="myftppath" -ADMIN_EMAIL="admin@example.org" +FTP_PATH="myftpfilepath" +ADMIN_EMAIL="admins@myactualdomain.org" + # Do we have the required directories? If not, create them CheckEnv () { @@ -65,14 +65,29 @@ if [ -z $BIBDATE ]; then exit 1; fi fi - -$PSQL -U $PSQL_USER -h $DB_HOST -A -t -o $OUTDIR/$OUTFILE -v bibdate="'$BIBDATE'" -f $SQL_FILE $DB_NAME +read -d '' SQL < '$BIBDATE' + ) + where bre.id > 0 -- we don't want -1 + and not bre.deleted + -- exclude too-large records + and bre.id not in (`grep -v ^# toolong | sed ':a;N;$!ba;s/\n/, /g'`)" + order by id;" +EOF +$PSQL -U $PSQL_USER -h $DB_HOST -A -t -o $OUTDIR/$OUTFILE -c "$SQL" $DB_NAME } # Branch here: if we have an $OUTFILE of under $CHUNKSIZE bib ids, just treat it as a single file ExportBibsSingleFile () { cat $OUTDIR/$OUTFILE | /openils/bin/marc_export --items --encoding UTF-8 > $EXPORT_DIR/$EXPORT -date +%F > last_export_date +date +%F > $WORKDIR/last_export_date } CountBibsSingleFile () { @@ -125,10 +140,10 @@ cd "$SPLIT_BIB_DIR" || { i="1" for bibfile in `ls bib_ids_*`; do echo "Processing $bibfile..." - cat $bibfile | /openils/bin/marc_export --items --encoding UTF-8 > $OUTDIR/DATA.D$DATE.FILE$i - RECORDCOUNT=`$MARC_COUNT $OUTDIR/DATA.D$DATE.FILE$i` + cat $bibfile | /openils/bin/marc_export --items --encoding UTF-8 > $EXPORT_DIR/DATA.D$DATE.FILE$i + RECORDCOUNT=`$MARC_COUNT $EXPORT_DIR/DATA.D$DATE.FILE$i` echo "DATA.D$DATE.FILE$i contains $RECORDCOUNT records" - cat << EOF > $OUTDIR/LABEL.D$DATE.FILE$i + cat << EOF > $EXPORT_DIR/LABEL.D$DATE.FILE$i DAT ${DATE_LONG}0000000.0 RBF $RECORDCOUNT DSN DATA.D$DATE.FILE$i @@ -137,13 +152,14 @@ FDI $PROJECT_ID EOF i=$[$i+1] # set up counter here done -date +%F > last_export_date +date +%F > $WORKDIR/last_export_date } FTPMultiFile () { # FIXME: It's actually unlikely that a monthly export will exceed 50K # but if it does, and it becomes a burden to do this manually, we # can add something here to automate multiple file FTP. ;-) +echo "FTP multifile support is not yet implemented." } echo "OCLC bib export began at `date`." | mutt -s "OCLC Export Begun" $ADMIN_EMAIL @@ -154,7 +170,7 @@ if [ `wc -l $OUTDIR/$OUTFILE | awk '{print $1}'` -gt "$CHUNKSIZE" ]; then ExportBibsMultiFile # FTPMultiFile else - ExportBibsSingleFile + ExportBibsSingleFile CountBibsSingleFile CreateLabelSingleFile FTPSingleFile