3 # we're getting called by cron, so just in case
4 PATH=/bin:/usr/bin:$PATH
7 COMMANDDIR=$(dirname $0)
8 COMMANDDIR=$(cd $COMMANDDIR; pwd -P)
10 DATE=$(date +%y-%m-%d-%H-%M-%S)
12 LOGDIR=$DATADIR/aa-dumplog
13 LOG=$LOGDIR/${DATE}.log
16 ### create a symlink in same dir
18 # actual : full path of the actual file
19 # link : the link name, only basename is used, will be created in same dir
20 function manage_link () {
23 # go in the right directory
25 actualbase=$(basename $actual)
27 latest=$(basename $latest)
28 echo "In $(pwd) : linking $actualbase to $latest"
29 rm -f $latest ; ln -s $actualbase $latest
30 # go back to current dir
35 # clean <where> <keeptime> [... find arguments]
40 echo "Cleaning $@ - older than $keeptime days"
41 find $where "$@" -atime +$keeptime | xargs rm
47 *build*|*kruder*|*blitz*)
48 DEFAULTS="subversion" ;;
50 DEFAULTS="planetlab4" ;;
52 echo "$COMMAND: WARNING: no known defaults for hostname $(hostname)"
64 echo "This is $COMMAND"
65 echo "Usage: $COMMAND [subversion]"
66 echo -e "\tkeyword 'subversion' : $SUBVERSION_REPO/ is dumped"
67 # echo -e "\tkeyword 'apache' : $APACHE_ROOT/ is tared"
68 # echo -e "\tkeyword 'env' : $ENV_ROOT/ is tared"
69 # echo -e "\totherwise performs a dump of the given database"
70 echo -e "default arguments are $DEFAULTS"
76 output=$DATADIR/$database-$DATE.sql
77 latest=$database-latest.sql
78 echo "Dumping $database into $output (drop-mode)"
79 pg_dump --user=$DB_USER $database > $output
80 manage_link $output $latest
83 function dumpsubversion () {
84 output=$DATADIR/subversion-$DATE.svndump
85 latest=subversion-latest.svndump
86 echo "Creating subversion archive in $output"
87 svnadmin dump $SUBVERSION_REPO/ > $output
88 manage_link $output $latest
91 function dumpregulardir () {
94 output=$DATADIR/$name-$DATE.tar
95 latest=$name-latest.tar
96 echo "Creating tar archive of $dumpdir into $output"
97 tar cf $output $dumpdir
98 manage_link $output $latest
103 # give one or more target names on the command-line
105 if [[ -z "$@" ]] ; then
111 [ -n "$DEBUG" ] && set -x
119 clean $DATADIR $SUBVERSION_KEEPTIME -name "$arg\*"
122 # dumpregulardir $arg $APACHE_ROOT
123 # clean $DATADIR $APACHE_KEEPTIME -name "$arg\*"
126 # dumpregulardir $arg $ENV_ROOT
127 # clean $DATADIR $ENV_KEEPTIME -name "$arg\*"
131 clean $DATADIR $DB_KEEPTIME -name "$arg\*"
138 manage_link $LOG $LATESTLOG
141 ##############################
153 main "$@" > $LOG 2>&1