Есть сервис Jenkins. Останавливаем его, архивируем папку с конфигом и данными и отсылаем по фтп архив на сервер. Скрипт следующий:
#! /bin/sh
#/var/lib/jenkins/jenkins_update.sh
jenkins="/etc/init.d/jenkins"
tar="/bin/tar"
from_dir="/var/lib/jenkins"
into_dir="/media/backups"
aptitude="/usr/bin/aptitude"
ftp="/usr/bin/ftp"
FTP_HOST="10.0.0.21"
USER=jenkins
PASSWD=password
FTP_DIR=Jenkins_backup
DATE=$(/bin/date +%d_%m_%Y)
FILE="backup_$DATE.jnkbkp"
rm *.jnkbkp
$jenkins stop
$tar -cjvf ./$FILE *
# c-create; j-use bzip2; v-verbose; f-file
$jenkins start
#uploading to ftp
echo " "; echo "Starting loading to ftp..."; echo " "
$ftp -v -n $FTP_HOST << FTPSESSION
user $USER $PASSWD
binary
cd $FTP_DIR
send $FILE
disconnect
exit
FTPSESSION
exit 0
Фишка в том, что при автоматическом запуске (а скрипт должен работать по крону), раз на раз не приходится, но часто на сервер передается битый архив размером всего в 42 кБ. При этом, если запустить скрипт вручную, он ВСЕГДА отрабатывает правильно и архив заливается 100-метровый. Сначала было подозрение, что фтп включался в текстовом режиме, я специально дал команду binary, но как-то начало косячить снова. В чем дело - ума не приложу. Разницы никакой не должно быть - и руками и по крону скрипт запускается от рута. Косяк происходит по ходу в момент передачи на фтп, т.е. изначально на самом сервере все архивируется полностью.