내 라즈베리 파이를 백업하는 bash 스크립트가 있습니다. 백업 명령을 실행한 후 내 컴퓨터가 종료되어야 합니다. 이것은 명령줄을 통해 스크립트를 실행할 때 작동합니다. 그러나 cronie가 실행되면 백업이 완료될 때까지 기다리지 않고 즉시 종료 명령으로 이동합니다.
이 문제에 대해 어떻게 해야 합니까?
쉘 스크립트:
#!/bin/bash
ssh [email protected] dd if=/dev/mmvblk0 bs=1M | gzip -c > /path/to/backup/$(date -I) && systemctl poweroff
답변1
ssh
그냥 백그라운드에서 실행되는 것 같습니다 . 실제로 연결하고 즉시 ssh
종료할 수 없으면 gzip
즉시 종료되는 결과도 발생합니다. 그러나 파이프의 종료 코드는 마지막 명령의 종료 코드이므로( set -o pipefail
이전에 사용되지 않은 경우) close 명령이 실행됩니다.
해당 사용자의 기본 파일에 없는 SSH 키를 사용하려면 ssh
다음 옵션을 사용하여 키 파일에 알려야 합니다 -i
.
ssh -i /home/user/.ssh/id_rsa [email protected] dd if=/dev/mmvblk0 bs=1M