CentOS6 FTPアップロード時のPermission Deniedについて
Q&A
Closed
【概要】
現在サーバー内のWikiをバックアップする、
シェルスクリプトを作成しています。
【やりたいこと】
Cronでスケジューリングし定期的に動作するもので、
動作としてはWikiのDBをdumpしてWiki本体のディレクトリとともに、
「tar.gz」にて固めて社内のサーバーにFTP接続してアップロードする
というものです。
【問題点】
しかし、FTP接続後に固めたtar.gzのファイルをアップロードを行う場面で、「Permission Denied」と言われてしまいます。
パスは「/home/growi-backup/backup/[バックアップファイル名].tar.gz」です。
以下試したポイント。
・/home配下の関連ディレクトリパーミッションを777にする
→ ダメでした
・SELinuxの確認
→ 無効化済みでした
・rootと一般ユーザーでのスクリプト実行
→ 結果変わらずダメでした
・ポートの確認
→ 対象のポートは既に開放済みでした
・アップロード先の権限確認
→ 権限は十分なものが付与されていました
【エラー内容】
/home/growi-backup/backup/[バックアップファイル名].tar.gz: Permission denied.
【実際のスクリプト内容】
#!/bin/bash
TODAY=`date +"%Y%m%d"`
INSTALL_PATH=/opt/crowi-plus
BACKUP_PATH=/home/growi-backup/backup
GROWI_DB_NAME=crowi
BACKUP_LIFETIME=+90
# ftpコマンドインストール済みであること
FTP_HOST=sample.co.jp
FTP_USER=sampleuser
FTP_PW=sampleuser
FTP_PORT=1121
FTP_BACKUP_DIR=/Backup/Growi
# Backup
#### upload-files
tar -C ${INSTALL_PATH}/public -cf ${BACKUP_PATH}/upload-files.tar uploads
#### db-data
mongodump -d ${GROWI_DB_NAME} --gzip --archive=${BACKUP_PATH}/dbdump.gz
#### Archive-files+db
tar -C ${BACKUP_PATH} -zcvf ${BACKUP_PATH}/${TODAY}_growi-backup.tar.gz upload-files.tar dbdump.gz
#### delete tmp-files
rm -fR ${BACKUP_PATH}/upload-files.tar
rm -fR ${BACKUP_PATH}/dbdump.gz
find ${BACKUP_PATH} -name "*.tar.gz" -mtime ${BACKUP_LIFETIME} -delete
echo "[`date`] Start saving to remote."
# cd ${SAVE_DIR}
ftp -n <<END || error "バックアップファイルのリモートサーバへの保存に失敗しまし た。"
open ${FTP_HOST} ${FTP_PORT}
user ${FTP_USER} ${FTP_PW}
cd ${FTP_BACKUP_DIR}
binary
prompt
put ${BACKUP_PATH}/${TODAY}_growi-backup.tar.gz
END
echo "[`date`] Save to remote is complete."
echo "[`date`] Backup is all complete."