2012-07-30 1 views
0

단일 명령 줄에서 ftp 프로토콜과 ftp 명령을 사용하여 원격 서버에 백업을 전송할 수 있습니까?Mysqldump backupt o ftp 명령을 사용하는 원격 서버

내 MySQL의 덤프 명령

mysqldump -u _admin -p'pass&word' _maindb --add-drop-table --ignore-table=_maindb.emailstatstics > backup$(date '+%d_%m_%y_%H_%M').sql 

및 FTP와 같은 :

ftp 64.xx.xx.xx 
myUserName 
myPassword 
put myMysqlBackup.sql 

나는이 파일은 DirectAdmin에

답변

1

에 cronjobs 실행 업로드 얻을 것이다이 명령이 필요합니다. 두 줄을 쉘 스크립트에 넣고 실행 가능하게 만들면 crontab에서 사용하는 데 아무런 문제가 없어야합니다. 출력 파일의 절대 경로를 사용해야합니다. 아마도

ftp -u ftp://myUserName:[email protected] myMysqlBackup.sql 
+0

나는 백업이 완료 후 전송할 필요가있다. 껍질을 쓰는 방법? im beginer to linux command – Hamidreza

+1

'.sh' 확장자를 가진 파일에 두 줄을 넣고 상단에 별도의 줄로'#!/bin/sh'를 추가하십시오. 이것은 로더에게'sh' 쉘을 사용하여 스크립트를 실행하도록 지시합니다. 그런 다음'chmod + x/path/to/script.sh'로 실행 파일로 표시하면됩니다. –

+1

죄송합니다. DirectAdmin에 대해 언급하셨습니다. 이 스크립트를 사용자의 홈 디렉토리 (웹 루트 외부 - 중요)에 넣으면 스크립트의 전체 경로를 DirectAdmin의 "명령"으로 지정할 수 있어야합니다. –

1

:

FILENAME=backup$(date '+%d%m_%y_%H_%M').sql ; mysqldump -u _admin -p'pass&word' _maindb --add-drop-table --ignore-table=maindb.emailstatstics > $FILENAME ; scp $FILENAME USERNAME:[email protected]/. 
+0

그것은 나를 위해 작동하지 않습니다,'ftp 64.xx.xx.xx myUserName myPassword put $ FILENAME'은 아무 것도하지 않습니다.이 메시지를 사용합니다. ftp 호스트 이름 [포트] – Hamidreza

+0

아 .. 질문에 쓴 ftp 명령은 작동하는 명령이었습니다. 나는 그 때 응답을 수정할 것이다. – troelskn

0

이 시도 :

#/bin/bash 
archive=$(date +%Y-%m-%d-%H-%M).gz 
mysqldump --all-databases | gzip -9 > $archive 
HOST=backupserver 
USER=user 
PASS=password 
ftp -inv $HOST << EOF 
user $USER $PASS 
put $archive 
bye 
EOF 
rm -f archive