리눅스 rsync 설정 문의드려요
물안개

Lv.1 물안개 (14.♡.110.58)

2025년 11월 23일 PM 05:27 · 수정됨(11. 30. 01:20)

조회 352 공감 0

로컬에 있는 A디렉토리와 B디렉토리를 동기화하려고 합니다.


rsync 명령어를 스크립트 파일로 만들어 crontab으로 자동실행 등록했는데,

A디렉토리에 새로 추가한 파일들이 아무리 해도 B디렉토리로 복사가 안 되더라구요.


오늘 이것저것 만져보다가 확인한 것이......

A디렉토리 하위 디렉토리명에 공백이 포함되어있으면 제대로 인식을 못하는 것 같습니다.


윈도우에서 robocopy 이용할 때는 이런 문제가 없었는데 난감하네요.

뭔가 방법이 있을 것 같은데 구글링으로는 해결이 안 되네요.

해결 방법 좀 알려주세요 ㅠㅠ


댓글 (8)

  • 널문자

    널문자 Lv.1

    25.11.23 · 58.♡.5.241

    커맨드라인에서 명령을 쓸때 폴더이름에 공백이 있으면 공백문자 이후로는 다른 옵션으로 인식합니다.
    이럴때는 하나의 옵션스트링을 따옴표로 묶으면 됩니다.
    cp "x x x" "y y y" 이렇게요.

    저건 윈도우도 똑같을텐데...
    윈도우에서는 안해봐서 모르겠네요.
  • 물안개

    물안개 Lv.1 → 널문자 작성자

    25.11.23 · 14.♡.110.58

    디렉토리나 파일 갯수가 많지 않으면 말씀하신대로 디렉토리마다 하나씩 따옴표로 묶어서 실행을 하면 되는데,

    아래처럼 실행시킨다고 가정하면
    rsync -avh "source" "destination"
    source 디렉토리 안에 있는 하위 디렉토리 중에 이름에 공백 포함된 것들이 수백개 있어요 ㅠㅠ

    ex) 이런 것들이요
    source/my data1
    source/my data2
    .......
  • 널문자

    널문자 Lv.1 → 물안개

    25.11.23 · 58.♡.5.241

    그럼 원인이 공백문자가 아닌것같습니다.
    명령줄이 아닌 하위폴더의 공백문자는 저런 문제는 없었습니다.
    혹시 파일시스템이 깨진것 아닐까요?
    항상 실행중인 서버는 쉽지않지만,
    fsck 한번 돌려보세요.
  • 도깨비방뫙

    도깨비방뫙 Lv.1

    25.11.23 · 211.♡.227.248

    rsync 명령을 메뉴얼로 실행해보기.
    스크립트를 수동으로 실행해보기.
    잘된다면 crontab에서의 실행문제는 아닌듯 합니다.

    혹시나 동작이 장시간걸려서 리소스부족에 걸린건 아닌지, 스크립트내에서 tee 넣어서 로그도 남겨보시고요.
    스크립트내에서 sudo나 background 실행옵션(nohup, &)을 잘 활용해보세요.

    실행중 여러이유로 메모리가 부족해서 팅길수도 있으니 스왑공간도 늘려보시구요.
  • 데굴대굴

    데굴대굴 Lv.1

    25.11.24 · 203.♡.184.50

    rsync 에서 crontab 으로 안되면...

    1. 수동으로 명령줄 하나하나 쳐보기
    2. 만든 배치를 직접 실행해보기
    3. 배치시 로그 생성해서 해결해보기

    순서로 접근해야 합니다. rsync면... --log-file=/tmp/rsync.log 와 같은 식으로 해야 로그 떨어질겁니다. (저는 개인적으로 이렇게 쓰는 것보다 > /tmp/mybatch.log 와 같이 스트림해버리는걸 더 좋아합니다)

    그리고, 하위폴더 포함이신거 같은데, rsync에서 하위폴더 포함이면 -r 입니다.....
  • Locus

    Locus Lv.1

    25.11.25 · 110.♡.182.155

    많은 분들이 답을 주셨는데, 혹시 잘 안되시면 그냥 GPT한테 명령어 붙여보세요.
    이러이러하게 명령어를 쳤는데 robocopy로 잘 되던 것이 rsync 로 하니까 추가되는 것이 안된다 뭐 이렇게 주저리 쓰시면 GPT가 해결책을 줄겁니다
  • 쾌변조로

    쾌변조로 Lv.1

    25.11.26 · 211.♡.201.7

    rclone 사용해보세요
  • 물안개

    물안개 Lv.1 작성자

    25.11.30 · 14.♡.110.58

    엉뚱한 걸로 삽질을 하다가, 뒤늦게나마 결과 남겨드립니다. 결론은 공백이 문제가 아니었네요. 제가 쉘 스크립트로 만들고 그걸 crontab으로 실행하는 형태로 만들었었는데, 쉘 스크립트에서 아래처럼 경로를 변수로 만든 게 문제였네요. 이유는 모르겠는데 아래처럼 실행하면 분명 rsync가 제대로 동작하는 것처럼 로그가 나오는데, 실제로는 그렇지 않았습니다.

    SRC="source/my data1/"
    DES="source/my data2/"
    rsync -avh $SRC $DES

    그래서 아래처럼 그냥 한 줄로 작성해서 실행했더니 아무런 문제가 없네요

    rsync -avh source/my data1/ source/my data2/

    왜 처음처럼 작성한 것이 제대로 동작하지 않는지 이유는 잘 모르겠습니다.
    그냥 두번째처럼 작성해서 잘 동작하는 걸 확인했어요
    다들 도움주신 분들 감사드립니다.

댓글을 작성하려면 이 필요합니다.