> #!/bin/bash
>
> su / /c "pg_dump atom > atom.`date +%Y_%m_%d_%H_%M` &" eyemanager
> sleep 5
> su / /c "gzip atom.`date +%Y_%m_%d_%H_%M` &" eyemanager
> exit 0
>
> 이것을 바탕으로 해서(root로 작업을 했습니다.)
>
> #!/bin/bash
>
> su / postgres "pg_dump db명 > db명.`date +%Y_%m_%d_%H_%M` &"
> mv db명.`date +%Y_%m_%d_%H_%M` /dbbackup
이것은 좀 문제가 있을 것 같습니다. 제일 마지막에 & 로 작업을 backend 로 돌리셨군요. 그러면 'db명' 이라는 파일이 제대로 생성 완료되기 전에 mv 명령어가 먹히게 되겠지요. 그렇게 되면 어떻게 될까요. 당연히 파일이 제대로 만들어지지 않겠지요. 차라리 제일 마지막의 &를 없애 던지 아니면 cron 으로 그냥 제일 첫줄을 먼저 실행시키고 그 5분 정도 (충분한 시간이 흐른후) 뒤에 mv 명령을 실행시키는 방법이 좋을 것 같습니다.
>
> 이런 식으로 해서 /etc/cron.daily/backup으로 만들었습니다.
> 물론 안되더군요....
> 이해안되는 부분은 바로 eyemanager가 뭔지, 그리고 sleep 5는 또 뭔지....
> 이게 안되서 정재익님이 리눅스 설명난에 올려놓으신....방법으로 해보았죠...
>
> postgres로 작업을 했습니다.
>
> crontab /e
>
> 0 5 * * * /usr/local/pgsql/bin/pg_dump 디비명 > 디비명.`date +%Y_%m_%d_%H_%M`
>
> 이렇게 했습니다.
>
> 물론 되지 않더군요.....
> 아무리 찾아보아도 화일이 없어요....
> 어디가 잘못된 건지 알려주세요....^^;;
파일 퍼미션이 문제가 있을 것입니다.
일단 뒤의 디비명에 정확한 경로명을 명시해 주시기 바랍니다.
/usr/local/pgsql/bin/pg_dump 디비명 >/usr/local/pgsql/디비명.`date +Y......`
이런식으로 말이지요.
그러고 나서 해당 디렉토리를 찾아 보시기 바랍니다. 틀림없이 있을 것으로 생각됩니다.
문제는 뒷쪽의 디렉토리에 퍼미션이 cron을 실행시키는 사용자에게 쓰기 퍼미션이 열려 있어야 한다는 것입니다. 너무 당연한가요?
|