tar 프롬프트에서 "logs"라는 폴더를 모두 제외해 보았습니다(모든 로그 파일을 백업할 필요는 없습니다).
단순화된 프롬프트는 다음과 같습니다.
tar -cvpf backup.tar servers --exclude='*/logs'
내 파일 시스템은 다음과 같습니다.
/home/
backup.sh
servers/
server1/
logs/
logfile1
logfile2
server2/
logs/
logfile1
logfile2
[server3 ... server100]/
스크립트를 실행하면 로그 폴더가 제외되지 않지만 다음 명령을 실행하면 제외됩니다.
tar -cvpf backup.tar servers --exclude=server1/logs --exclude=server2/logs (and so on for the rest of the servers)
그렇다면 각 서버에 대해 제외 명령을 복사하여 붙여 넣을 필요가 없고 오류가 발생할 가능성이 높도록 명령을 변경하려면 어떻게 해야 합니까?
답변1
GNU tar(v. 1.29)를 사용하면 tar cvf foo.tar --exclude "*/logs" servers
.
--exclude
이 옵션은 명령줄에서 그 뒤에 나열된 경로에만 적용되는 것으로 나타나므로 다음은 제외되지 않습니다 a/logs
.
tar cvf foo.tar servers/a --exclude "*/logs" servers/{b,c}
하지만 매뉴얼 페이지에는 명시적으로 언급된 내용이 없습니다(그러나 개요에는 평소와 같이 파일 앞에 옵션이 나열되어 있습니다).