매일 특정 디렉터리의 일부 파일을 다른 위치로 복사해야 합니다. 변경 사항만 복사하고 싶기 때문에 rsync
파일은 다음 명명 규칙을 따릅니다.mysql-bin.*
내 명령은 다음과 같습니다
# rsync --update -raz --progress /var/lib/mysql/mysql-bin.* /dbdata/binarylog/
혼란스러운 점은 전체 디렉터리 내용이 아닌 디렉터리에서 몇 개의 파일만 복사할 계획이었기 때문에 *
필요한 파일만 복사하곤 했다는 것입니다. 동일한 목적을 달성하기 위해 내 명령이 올바른지 궁금합니다.
답변1
꽤 좋아 보인다. 그런데 -z
압축 전송 옵션을 사용하는 이유는 무엇입니까? 이 옵션은 일반적으로 느린 네트워크를 통해 원격 rsync 서버에 복사할 때 사용됩니다. 이 경우 파일을 즉시 압축 및 압축 해제하므로 아무런 이점 없이 CPU 사용량만 증가합니다.
-a
(아카이브) 옵션은 ( -r
재귀) 옵션을 의미하므로 명령줄에서 명시적으로 지정할 필요가 없습니다.
-n
옵션(또는 --dry-run
)을 사용하여 명령을 확인할 수 있습니다. 실제로 파일을 복사하지 않고도 수행할 작업을 보여줍니다. 실제로 무슨 일이 일어나고 있는지 보려면 옵션 -v
(또는 --verbose
)도 사용해야 합니다.
그래서:
rsync -uanv /var/lib/mysql/mysql-bin.* /dbdata/binarylog/
시험 실행에서 파일이 올바르게 나열되면 다음을 제거하십시오 nv
.
rsync -ua --progress /var/lib/mysql/mysql-bin.* /dbdata/binarylog/