파일에 쓰려고 할 때 Bash 스크립트 오류: 해당 파일 또는 디렉터리가 없습니다.

파일에 쓰려고 할 때 Bash 스크립트 오류: 해당 파일 또는 디렉터리가 없습니다.

매우 간단한 스크립트에서 오류가 발생합니다. 스크립트는 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"

관련 정보