アプリケーションディレクトリのバックアップ、データベースのバックアップ、および次のスクリプトを使用してhetznerのftpサーバーに送信しようとしています
私のサーバーの詳細:ubuntu12-04(hetzner)データベース:postgresql8.4私のftpサーバー:hetzner ubuntu12.04サーバーでバックアップを取ろうとし、ftpで私のサーバーにコピーしようとしています
bakupscript.sh
site=ftp://u***.your-backup.de
username=u***
passwd=*******************
backupdir=/opt/openbravo-erp
filenameob="openbravo-erp.tar.gz"
echo "Creating a ob backup file $filenameob of $backupdir."
# Make a tar gzipped backup file
tar -cvzf /home/hetznerftp/"$filenameob" "$backupdir"
echo "creating a db backup file $filenamedb of ob database."
export PGPASSWORD="*my db password*"
backup_dir="/home/manideep/hetzner/"
#String to append to the name of the backup files
pg_dump -h localhost -U tad openbravo -Fc $i > $backup_dir$i\rajedb.backup
#login into ftp server
ftp -in <<EOF
open $ftp_site
user $username $passwd
bin
put /home/manideep/hetzner$filenameob
put /home/manideep/hetznerftp/pgdump.backup
close
bye
コマンド./backupscript.sh
を使用してそのスクリプトを実行しようとすると
次のエラーが発生します
Creating a backup file openbravo-erp.tar.gz of /opt/openbravo-erp.
creating a db backup file of ob database.
./hetznerbkup.sh: line 28: warning: here-document at line 21 delimited by end-of-file (wanted `EOF')
(to) usage: open Host-name [port]
Not connected.
Not connected.
Not connected.
Not connected.
スクリプトを使用してこれらのファイルを送信するにはどうすればよいですか?
put
in ftp
in ftp server
のコマンドを使用している間、これは既存のファイルを置き換えますか?ありがとうございました
資格情報/パスワードをプレーンテキストで保存および送信しないでください。
代わりに、公開鍵のみの許可でSSHをセットアップし、ファイル転送にscpまたはrsyncを使用します。また、postgres
ユーザー自身がcronjobを介してバックアップを行うようにします(これは そこからの最後の質問 に対する回答です)。 buntuusers.de cron on cron を参照してください。
Postgres crontabの例:
# Shell variable for cron
Shell=/bin/bash
# PATH variable for cron
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# Backup some database from sunday to friday, compress with xz, hash with md5, delete obsolete backups after 40 days
0 3 * * Sun-FRI dump="some-database-$(date +\%Y\%m\%d-\%H\%M)-daily.sql"; cd /var/backups/postgres; pg_dump -Fc -Z0 some-database | xz -6 > ${dump}.xz; md5deep -kl ${dump}.xz > ${dump}.xz.md5; find -name "some-database*daily.sql.xz*" -mtime +40 -delete
Openbravo ERPまたはwww-data
ユーザーとしてtarを使用してファイルをバックアップするのは、上記と同じくらい簡単です。
編集:コンプレッサーとしてxzの代わりにzstdを試すことをお勧めします。これには約20レベルがあり、最高レベルの最高xzレベルとほぼ同等であり、さらに高速です。
スクリプトの最後にEOFを置く必要があります。
ftp -in <<EOF
open $ftp_site
user $username $passwd
bin
put /home/manideep/hetzner$filenameob
put /home/manideep/hetznerftp/pgdump.backup
close
bye
EOF