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
18 ### create a symlink in same dir
20 # actual : full path of the actual file
21 # link : the link name, only basename is used, will be created in same dir
22 function manage_link () {
25 # go in the right directory
27 actualbase=$(basename $actual)
29 latest=$(basename $latest)
30 echo "In $(pwd) : linking $actualbase to $latest"
31 rm -f $latest ; ln -s $actualbase $latest
32 # go back to current dir
37 # clean <where> <keeptime> [... find arguments]
42 echo "Cleaning $@ - older than $keeptime days"
43 find $where "$@" -atime +$keeptime | xargs rm
49 *build*|*kruder*|*blitz*)
50 DEFAULTS="subversion" ;;
52 DEFAULTS="planetlab4" ;;
54 echo "$COMMAND: WARNING: no known defaults for hostname $(hostname)"
66 echo "This is $COMMAND, $REVISION"
67 echo "Usage: $COMMAND [subversion]"
68 echo -e "\tkeyword 'subversion' : $SUBVERSION_REPO/ is dumped"
69 # echo -e "\tkeyword 'apache' : $APACHE_ROOT/ is tared"
70 # echo -e "\tkeyword 'env' : $ENV_ROOT/ is tared"
71 # echo -e "\totherwise performs a dump of the given database"
72 echo -e "default arguments are $DEFAULTS"
78 output=$DATADIR/$database-$DATE.sql
79 latest=$database-latest.sql
80 echo "Dumping $database into $output (drop-mode)"
81 pg_dump --user=$DB_USER $database > $output
82 manage_link $output $latest
85 function dumpsubversion () {
86 output=$DATADIR/subversion-$DATE.svndump
87 latest=subversion-latest.svndump
88 echo "Creating subversion archive in $output"
89 svnadmin dump $SUBVERSION_REPO/ > $output
90 manage_link $output $latest
93 function dumpregulardir () {
96 output=$DATADIR/$name-$DATE.tar
97 latest=$name-latest.tar
98 echo "Creating tar archive of $dumpdir into $output"
99 tar cf $output $dumpdir
100 manage_link $output $latest
105 # give one or more target names on the command-line
107 if [[ -z "$@" ]] ; then
113 [ -n "$DEBUG" ] && set -x
121 clean $DATADIR $SUBVERSION_KEEPTIME -name "$arg\*"
124 # dumpregulardir $arg $APACHE_ROOT
125 # clean $DATADIR $APACHE_KEEPTIME -name "$arg\*"
128 # dumpregulardir $arg $ENV_ROOT
129 # clean $DATADIR $ENV_KEEPTIME -name "$arg\*"
133 clean $DATADIR $DB_KEEPTIME -name "$arg\*"
140 manage_link $LOG $LATESTLOG
143 ##############################
155 main "$@" > $LOG 2>&1