Rpi를 백업하기 위해 이미지 백업을 사용합니다. FTP 서버와 sshfs를 통해 직접 백업합니다.
/etc/fstab에 연결하는 방법은 다음과 같습니다.
MYUSERNAME@MYSERVER:/home/myuser/rpi_backup /mnt/MYSERVER fuse.sshfs noauto,x-systemd.automount,_netdev,reconnect,identityfile=/home/pi/.ssh/id_rsa,allow_other,default_permissions 0 0
이것은 내 /etc/fuse.conf입니다.
user_allow_other
권한이 없다는 오류가 발생합니다.
rsync: [generator] symlink "/tmp/img-backup-mnt/boot/cmdline.txt" -> "firmware/cmdline.txt" failed: Operation not permitted (1)
또한 다음 명령을 시도했지만 해결되지 않았습니다.
sudo groupadd fuse
sudo usermod -a -G fuse pi
이 문제를 해결하기 위해 내가 시도할 수 있는 다른 방법을 아는 사람이 있습니까?
매우 감사합니다!
편집하다:
따라서 궁극적으로 SSHFS가 전혀 아닙니다.
대상 /mnt/test.img를 사용하고 입력할 때 sudo image-backup
동일한 오류가 발생합니다 .
사용자 정의 프로그램이 문제를 해결하고 찾는 것이 어렵다는 것을 알고 있지만 오류를 재현하거나 범위를 좁히기 위해 어떤 rsync 명령을 테스트할 수 있습니까? 감사해요.
답변1
질문에서 sudo echo 부분을 제거했습니다. 어떤 이유로 지금은 작동합니다.
@waltinator는 이미 그의 의견에서 이에 대해 설명했습니다. 여기에 긴 버전이 있습니다.
쉘은 여러 단계를 통해 명령줄을 해석합니다. 단계 중 하나(상당히 초기 단계)는 리디렉션을 처리하는 것입니다. 그렇기 때문에 다음과 같은 명령이 사용됩니다.
sudo -s /some/command > /some/where
예아니요"로 해석됩니다.패스/some/command > /some/where
sudo -s
” 그러나 리디렉션이 먼저 처리되고 출력이 sudo -s /some/command
로 리디렉션됩니다 /some/where
. 그런 다음에만 sudo
호출되어 옵션 -s
과 명령줄 인수를 전달합니다 /some/command
.
이는 프로세스가 실행 중임을 의미합니다.당신의사용자 ID 및당신의리디렉션 대상에 쓸 수 있는 권한이 있으며 해당 권한에는 쓰기가 포함되지 않을 수 있습니다.
해결책은 실제로 거기에 쓸 수 있는 프로세스를 만드는 것입니다.
sudo -s /some/command | sudo -s tee [-a] /some/where > /dev/null
"/some/command"와 "tee" 모두 높은 권한으로 쓰기 작업을 실행하고 있는 것을 볼 수 있습니다.
파일을 추가하려면 "-a" 플래그를 사용해야 합니다. 그렇지 않으면 파일을 덮어쓰게 됩니다. 또한 파일에 기록되는 내용이 화면을 복잡하게 만드는 것을 원하지 않으면 출력을 tee
./dev/null