매우 간단한 스크립트에서 오류가 발생합니다. 스크립트는 pg_dumpall을 실행하고 출력을 파일에 쓰도록 되어 있지만 생성된 파일이 존재하지 않는다는 오류가 발생합니다. 나는 그것이 존재하지 않는다는 것을 알고 있습니다. 그래서 그것을 만들고 싶습니다! :-/
#!/bin/bash
#remove previous day's dump and create new
rm -f /home/user/db_dump_*.txt;
pg_dumpall -U postgres -w > /home/user/db_dump_`date '+%d/%m/%Y_%H:%M:%S'`.txt;
결과 :
db_dump.sh: line 4: /home/user/db_dump_12/02/2017_14:30:15.txt: No such file or directory
date 명령은 잘 작동하고 파일 이름도 완벽하지만 파일을 생성하는 대신 파일이 존재하지 않는다는 오류가 발생합니다. 권한 문제가 없어야하므로 스크립트를 루트로 실행하고 있습니다. 아무 문제 없이 사용자의 홈 디렉토리에 쓸 수 있습니다.
어떤 아이디어가 있나요?
답변1
생성된 파일 이름을 다시 확인하세요.
/home/user/db_dump_12/02/2017_14:30:15.txt
02
라는 하위 디렉터리 에 쓰기를 시도합니다 db_dump_12
. 이러한 디렉터리가 존재하지 않으면 "해당 파일이 없거나목차" 실수.
다른 날짜 형식을 사용하는 것이 좋습니다.
dumpfile_date=$( date +"%F-%T" ) # or %Y%m%d-%H%M%S or something similar
pg_dumpall -U postgres -w > "/home/user/db_dump_$dumpfile_date.txt"