Я ищу способ создавать резервные копии из нескольких баз данных и отправлять файлы результатов на сервер в Debian Linux 6 (Sqeeze) из задания crontab Существуют базы данных с именем database1 .. database4 Резервное копирование из каждой базы данных shoudl, созданной и отправленной с помощью ftp
Я пробовал сценарий ниже, но сценарий send.sh не завершается автоматически: он должен завершаться клавиатурой. Как исправить ? Как сделать скрипт короче?
Скрипт crontab:
#!/bin/sh
PGUSER=postgres
PGPASSWORD=mymass
export PGUSER PGPASSWORD
backupdir=/root/mybackups
backupdate=$(date +%u)
baas=database1
export baas backupdate
fail=${backupdir}/${baas}${backupdate}.backup
pg_dump -U postgres ${baas} -f ${fail}
./saada.sh
baas=database2
export baas backupdate
fail=${backupdir}/${baas}${backupdate}.backup
pg_dump -U postgres ${baas} -f ${fail}
./saada.sh
baas=database3
export baas backupdate
fail=${backupdir}/${baas}${backupdate}.backup
pg_dump -U postgres ${baas} -f ${fail}
./saada.sh
baas=database4
export baas backupdate
fail=${backupdir}/${baas}${backupdate}.backup
pg_dump -U postgres ${baas} -f ${fail}
./saada.sh
отправка, которая не завершается с saada.sh,
#!/bin/sh
/usr/bin/ftp -inp <<EOF
open mybackupsite.com
user backupuser pass
bin
lcd /root/eeva-backups
delete "${baas}*.backup"
put "${baas}${backupdate}.backup"
bye
#reset PGUSER and PGPASSWORD
#PGUSER=""
#PGPASSWORD=""
#export PGUSER PGPASSWORD
#End
#exit 0
EOF
Комментарий Андрея наверно на месте однако я не рекомендую никому использовать FTP в качестве метода передачи, потому что он отправляет пользователя / пароль без предварительного шифрования
Есть ли веские причины не использовать ssh + rsync? Вы бы достигли того же результата с аутентификацией без пароля, которая легко достижимый
Ваш сценарий был бы безопаснее и короче
rsync --delete -av ${baas}${backupdate}.backup user@server.domain.com:/root/eeva-backups