annotate cdli-archive-sync.sh @ 60:5bee75ca9eb3 default tip

added old makemeta-quantum.pl that was not in CVS.
author casties
date Thu, 16 Mar 2017 18:29:58 +0100
parents 86965c7658a9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
53
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
1 #!/bin/bash
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
2 #
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
3 # script to synchronize the CDLI archive at UCLA to MPIWG
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
4 #
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
5 # V0.4.3 (30.6.2006 ROC)
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
6
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
7 DEBUG=1
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
8
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
9 LOCKFILE=/var/tmp/cdli-archive-sync.lock
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
10 LOGFILE=/var/tmp/cdli-archive-sync.log
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
11 EXCLUDEFILE=/export/home/mirror/scripts/rsync-exclude.list
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
12
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
13 MAILTO=casties@mpiwg-berlin.mpg.de
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
14
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
15 MIRDIR=/mpiwg/mirror/CDLI/ARCHIVE
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
16 REMOTEDIR=/Volumes/cdli_archives
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
17
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
18 RSYNC=/usr/local/bin/rsync
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
19 RSYNCHOST="mpiwgsav@backup.cdli.ucla.edu"
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
20 RSYNCOPTS="--delete --exclude-from=$EXCLUDEFILE"
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
21
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
22
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
23 function syncdir () {
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
24 #
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
25 # sync given directory
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
26 #
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
27 DIR=$1
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
28 REMDIR=${2:-$REMOTEDIR}
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
29 if [ -n "$3" ] && [ ${3:1:1} == "-" ]
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
30 then
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
31 # if the third param starts with "-" it's the options
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
32 MOREOPTS=$3
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
33 shift
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
34 fi
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
35 LOCDIR=${3:-$MIRDIR}
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
36 echo "***** syncing $DIR on $(date)" >> $LOGFILE
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
37 if [ -n $DEBUG ] ; then echo "syncing $DIR on $(date)"; fi
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
38 if [ -n $DEBUG ] ; then echo " $RSYNC -ave ssh $RSYNCOPTS $MOREOPTS \"$RSYNCHOST:$REMDIR/$DIR/\" \"$LOCDIR/$DIR/\" >> $LOGFILE 2>&1" >> $LOGFILE ; fi
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
39 $RSYNC -ave ssh $RSYNCOPTS $MOREOPTS "$RSYNCHOST:$REMDIR/$DIR/" "$LOCDIR/$DIR/" >> $LOGFILE 2>&1
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
40 if [ $? != 0 ]
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
41 then
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
42 ERROR="${ERROR}ERROR syncing $DIR "
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
43 fi
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
44 }
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
45
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
46
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
47
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
48 #
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
49 # check if script is already running
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
50 #
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
51 if [ -f $LOCKFILE ]
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
52 then
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
53 if [ -n $DEBUG ] ; then echo "lockfile present! script seems to be running!"; fi
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
54
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
55 mail -t $MAILTO <<EOF
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
56 Subject: CDLI-ARCHIVE-MIRROR: already running!
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
57
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
58 `ls -l $LOCKFILE `
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
59 EOF
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
60 exit 1
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
61 fi
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
62
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
63 touch $LOCKFILE
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
64
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
65 echo "***** started `date`" > $LOGFILE
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
66
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
67 #
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
68 # sync
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
69 #
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
70 syncdir "cdli_archival"
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
71
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
72 syncdir "cdli_general" "/Volumes/cdli_freeze" "--exclude=englund/personal/"
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
73
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
74 syncdir "cdli_rawfiles" "/Volumes/cdli_freeze"
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
75
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
76 #
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
77 # send mail with error log if an error occurred
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
78 #
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
79 if [ -n "$ERROR" ]
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
80 then
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
81 # don't send logs bigger than 1MB
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
82 LOGSIZE=`ls -l $LOGFILE |cut -c 32-40`
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
83 if [ "$LOGSIZE" -gt 900000 ]
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
84 then
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
85 LOG="LOGFILE too big to send: $LOGSIZE"
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
86 else
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
87 LOG=`cat $LOGFILE`
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
88 fi
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
89
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
90 mail -t $MAILTO <<EOF
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
91 Subject: $ERROR
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
92
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
93 $LOG
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
94 EOF
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
95 fi
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
96
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
97 # remove lock
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
98
86965c7658a9 *** empty log message ***
casties
parents:
diff changeset
99 rm $LOCKFILE