웹사이트 검색

Linux 및 Windows 데스크톱용 백업 서버로 Raspberry Pi를 설정하는 방법


이 페이지에서

  1. Raspberry Pi를 백업 서버로 설정
    1. 1. Raspian 이미지 다운로드
    2. 2. 이미지를 microSD 카드에 플래시\n
    3. 3. 최초 부팅/구성
    4. 4. 파일 시스템 확장\n
    5. 5. 사용자 비밀번호 변경\n
    6. 6. 콘솔 로그인
    7. 7. 현지화\n
    8. 8. 고급 옵션
    9. 9. 호스트 이름 설정\n
    10. 10. 메모리 분할\n
    11. 11. OpenSSH 서버 활성화\n
    12. 11. 마침 및 재부팅
    13. 12. 필수 패키지 업데이트 및 설치\n
    14. 13. 원격 SSH 연결 또는 Raspberry Pi에서 계속
    15. 14. 외부 USB 드라이브 찾기 및 포맷
    16. 15. 외장 USB 드라이브 마운트
    17. 16. 부팅 시 외장 USB 드라이브 마운트
    18. 17. 삼바 구성
    19. 18. Raspberry Pi의 백업 제어 파일

    1. 19. 공개 ssh 키 생성
    2. 20. 공개 ssh 키를 Rasperry Pi 백업 사용자에게 복사합니다.\n
    3. 21. 데스크톱에서 백업 스크립트 생성

    1. 22. 시그윈 다운로드
    2. 23. 필수 패키지와 함께 Cygwin 설치\n
    3. 24. 공개 ssh 키 생성
    4. 25. 공개 ssh 키를 Rasperry Pi 백업 사용자에게 복사합니다.\n
    5. 26. 데스크톱에서 백업 스크립트 생성

    Raspberry Pi는 일련의 소형 단일 보드 컴퓨터입니다. 그들은 다소 저렴하고 백업 서버 또는 VoIP 서버를 실행하는 데 적합합니다. 2015년 2월에 Raspberry Pi 2가 출시되었습니다. 더 많은 램, 최신 CPU 및 4개의 온보드 USB 포트가 있습니다.

    라즈베리 파이 2의 현재 가격은 $35입니다.-. 그러나 추가로 몇 가지 다른 사항이 필요합니다. -howtoforge_com-medrectangle-3-0;var ffid=1;var alS=1021%1000;var container=document.getElementById(slotId);container.style.width=100%;var ins=document.createElement(ins); ins.id=slotId+-asloaded;ins.className=adsbygoogle ezasloaded;ins.dataset.adClient=pid;ins.dataset.adChannel=cid;if(ffid==2){ins.dataset.fullWidthResponsive=true;}

    • microSD 카드: Raspberry Pi 2를 부팅하려면 microSD 카드가 필요합니다. 모두 4GB 이상과 관련이 있습니다. 백업 서버의 경우 4GB면 충분합니다. 빨리 읽는 것을 원할 수도 있습니다.\n
    • 마이크로 USB 전원 충전기: 또한 전원 공급 장치가 필요합니다. 마이크로 USB 포트로 전원이 공급되므로 더 이상 필요하지 않은 오래된 휴대폰의 충전기가 집에 있을 가능성이 큽니다.\n
    • 외부 USB 저장소: 이 하우투는 백업 서버 설정에 관한 것이므로 외부 USB 저장소도 구해야 합니다. 외장 512GB 하드디스크면 충분할 수도 있고 4TB 드라이브가 필요할 수도 있습니다. 귀하의 스토리지 요구 사항에 달려 있습니다.\n
    • 케이싱: 마지막은 케이싱입니다. 꼭 케이스가 필요한 것은 아니지만 케이스를 사용하지 않으면 전체 메인보드가 어딘가에 놓여 있고 손상될 가능성이 더 높아질 것입니다.\n

    따라서 총 비용은 $35 정도가 될 것입니다.- 라즈베리 파이의 경우 약 $10.- microSD 카드의 경우 약 $10.- 케이스의 경우 마이크로 USB 충전기가 있을 수 있으므로 마이크로 USB 충전기에 대한 비용은 없습니다. USB 드라이브 비용.

    또한 백업을 검색하기 위해 samba를 설정했으며 공유는 필요한 자격 증명 없이 읽기 전용 모드입니다. 이 가이드에 따라 적절하게 구성되면 LAN에서만 사용할 수 있으며 LAN 외부에서의 연결 시도는 거부됩니다. samba 사용자 및 다른 자격 증명도 설정하는 것은 이 하우투의 범위를 벗어납니다. 이를 설명하는 다른 하우투가 많이 있으며 필요한 경우 쉽게 통합할 수 있습니다.

    Raspberry Pi를 백업 서버로 설정

    Raspberry Pi를 백업 서버로 설정하는 것은 먼저 이미지를 플래시한 다음 모든 것을 준비해야 하기 때문에 "가장" 어려운 부분입니다. 그러나 단계별 가이드가 안내해야 합니다.

    1. 라스피안 이미지 다운로드

    먼저 https://www.raspberrypi.org/downloads/에서 현재 Raspian 이미지를 다운로드합니다.

    2. 이미지를 microSD 카드에 플래시합니다.

    이미지를 다운로드한 후 microSD 카드에 플래시해야 합니다. 이 작업을 수행하기 위한 훌륭한 가이드가 이미 있기 때문에 여기서 반복할 필요가 없습니다. 여기 가이드를 따라가는 것이 가장 좋습니다.

    3. 최초 부팅/구성

    Raspian Image로 Raspberry Pi를 플래시한 후 HDMI 화면을 연결하고 부팅합니다. 처음 부팅하면 구성 화면이 표시됩니다. 그 구성 화면은 매우 간단하며 설정해야 할 몇 가지 사항이 있습니다.

    4. 파일 시스템 확장

    먼저 우리는 sdcard의 전체 공간을 사용할 수 있기를 원합니다. 백업의 경우 어쨌든 외부 드라이브에 저장되므로 중요하지 않습니다. 그러나 나는 공간을 사용할 수 있는 것을 좋아합니다. 따라서 1 Expand Filesystem을 선택하면 다음에 재부팅할 때 파일 시스템이 확장된다는 알림이 표시됩니다.

    5. 사용자 비밀번호 변경

    그런 다음 "pi" 사용자의 기본 비밀번호를 변경하려고 합니다. 따라서 2 Change User Password를 선택한 다음 원하는 암호를 두 번 입력하고 매번 Enter 키를 누릅니다. 다시 암호가 변경되었다는 알림이 표시됩니다.

    6. 콘솔 로그인

    그 후에 우리는 우리가 GUI를 시작하지 않는지 확인하고 싶습니다. 따라서 3 데스크톱/스크래치로 부팅 활성화를 선택합니다. 다음 화면에서 로그인이 필요한 콘솔 텍스트 콘솔을 선택합니다(기본값).

    7. 현지화

    그런 다음 시스템 언어 및 기타 사용 가능한 언어, 키보드 레이아웃 등을 설정하려고 합니다. 이를 위해 4개의 국제화 옵션으로 이동합니다. 입력하면 언어, 시간대 및 키보드 언어를 변경하라는 메시지가 표시됩니다. 대화는 모두 쉬우므로 자세한 내용은 다루지 않겠습니다.

    8. 고급 옵션

    이제 8. 고급 옵션으로 이동합니다. 거기에 우리가 설정할 수 있는 또 다른 것들이 있습니다. 세 가지 중요한 항목은 A2 호스트 이름, A3 메모리 분할 및 A4 SSH입니다.

    9. 호스트 이름 설정

    호스트 이름을 사용하면 LAN의 호스트 이름으로 Raspberry Pi에 액세스할 수 있습니다. 주의: 문자와 숫자만 사용할 수 있습니다. 이 예에서는 호스트 이름 rpi2bu를 사용합니다. Raspberry Pi 2 Backup의 줄임말이지만 모든 것은 사용자에게 달려 있습니다.

    10. 메모리 분할

    이 라즈베리 파이를 백업 서버로 실행하고 싶기 때문에 GPU에서 귀중한 램을 낭비하고 싶지 않습니다. 기억하세요: 이것은 헤드리스 서버입니다. 따라서 램 분할을 16MB로 설정하십시오.

    11. OpenSSH 서버 활성화

    ssh를 통해 rsync로 백업을 잘 수행하고 ssh 액세스는 Raspberry Pi의 원격 관리에 적합하므로 고급 옵션 메뉴에서 OpenSSH 서버도 활성화하십시오.

    11. 완료 및 재부팅

    구성 화면에서 설정할 항목은 모두 여기까지이며 이제 기본 구성에서 <마무리>를 선택하면 됩니다. 그렇게 하면 Raspberry Pi가 재부팅되고 잠시 후 로그인 자격 증명을 묻는 메시지가 표시됩니다. 현재 사용자는 pi이고 암호는 5단계에서 설정한 대로 설정됩니다. 또한 Raspberry Pi의 현재 IP 주소도 표시됩니다.

    12. 필수 패키지 업데이트 및 설치

    Raspberry Pi를 백업 서버로 사용하려면 rsync 및 samba라는 두 가지 추가 패키지를 설치해야 합니다. Rsync는 Windows/Linux 컴퓨터에서 파일을 동기화하는 도구이며 Samba는 네트워크에서 백업을 사용할 수 있도록 합니다(읽기 전용 모드).

    항상 많은 변경 사항과 업데이트가 있기 때문에 먼저 다음을 실행합니다.

    sudo apt-get update && sudo apt-get upgrade

    그런 다음 다음을 통해 필요한 패키지를 설치합니다.

    sudo apt-get install rsync samba

    13. 원격 SSH 연결 또는 Raspberry Pi에서 계속

    다음 단계는 Raspberry Pi 자체에서 또는 ssh 연결을 통해 수행할 수 있습니다. 저는 ssh 연결을 선호하고 Linux에서는 KDE에서 Konsole을 사용합니다. Windows에서는 Kitty를 사용할 수 있습니다.

    14. 외장 USB 드라이브 찾기 및 포맷

    삼바 서버를 구성하기 전에 외부 USB 드라이브를 마운트하고 백업 사용자를 생성해야 합니다. 외장 USB 드라이브를 마운트하기 전에 포맷하고 UUID를 알아야 합니다. 따라서 외장 USB 드라이브를 연결하기 전에 다음을 실행하십시오.

    ls -al /dev/disk/by-uuid

    다음과 같이 반환됩니다.

    total 0
    drwxr-xr-x 2 root root 100 Mai 19 18:22 .
    drwxr-xr-x 6 root root 120 Jan  1  1970 ..
    lrwxrwxrwx 1 root root  15 Mai 19 18:22 13d368bf-6dbf-4751-8ba1-88bed06bef77 -> ../../mmcblk0p2
    lrwxrwxrwx 1 root root  15 Mai 19 18:22 15CD-3B79 -> ../../mmcblk0p1

    이제 외부 USB 드라이브를 연결하고 명령을 다시 실행하십시오. 결과가 다르고 새 장치가 있음을 알 수 있습니다.

    total 0
    drwxr-xr-x 2 root root 100 Mai 19 18:22 .
    drwxr-xr-x 6 root root 120 Jan  1  1970 ..
    lrwxrwxrwx 1 root root  15 Mai 19 18:22 13d368bf-6dbf-4751-8ba1-88bed06bef77 -> ../../mmcblk0p2
    lrwxrwxrwx 1 root root  15 Mai 19 18:22 15CD-3B79 -> ../../mmcblk0p1
    lrwxrwxrwx 1 root root  10 Mai 19 18:22 eac53de3-9f06-4e46-999c-684da279298b -> ../../sda1

    이것은 우리에게 두 가지를 알려줍니다. 새 장치는 /dev/sda1이고 해당 uuid는 eac53de3-9f06-4e46-999c-684da279298b입니다. 여러 드라이브를 연결하면 sda1이 변경될 수 있습니다. 따라서 나중에 마운트할 목적으로 파티션이 변경되지 않거나 파티션이 포맷되는 한 변경되지 않는 UUID를 사용하십시오. 그러나 파티션을 적절한 파일 시스템으로 포맷하려고 합니다.

    사용하기 전에 이 드라이브를 포맷해야 합니다. 나는 ext4를 선호하지만 일부 사람들은 스냅샷 및 무결성 검사를 위해 btrfs를 선호할 수 있습니다. ext4로 포맷하려면 다음 명령을 실행하십시오.

    sudo mkfs.ext4 /dev/sda1

    말했듯이 포맷하면 UUID도 변경되므로 앞서 언급한 명령을 다시 실행하고 새 UUID를 기록해 두어야 합니다.

    15. 외장 USB 드라이브 마운트

    다음은 마운트해야 한다는 것입니다. 여기서 마운트할 위치를 결정해야 합니다. 백업 사용자 홈 디렉토리에 드라이브를 마운트하도록 선택했습니다. 원하는 경우 /home으로도 마운트할 수 있습니다. 그러나 수행할 백업이 여러 개인 경우 개별 드라이브에 만들고 싶습니다. 따라서 한 사용자 = 1 드라이브이고 드라이브는 사용자 홈 디렉토리에 마운트됩니다. Rasperry Pi에서는 4개의 USB 장치를 직접 연결할 수 있으므로 필요한 경우 다른 사용자에게 쉽게 확장할 수 있습니다. 마운트하기 전에 그에 따라 백업 사용자를 추가합니다. 이 하우투에서는 해당 사용자를 bu라고 합니다. 해당 사용자를 생성하려면 다음 명령을 실행합니다.

    sudo adduser bu

    해당 사용자의 암호를 제공하라는 메시지가 두 번 다시 표시됩니다.

    사용자가 추가되면 다음 명령을 사용하여 외장 드라이브를 쉽게 마운트할 수 있습니다.

    sudo mount /dev/sda1 /home/bu

    그러나 사용하기 전에 마지막 단계를 수행해야 합니다. 이제 마운트된 폴더의 소유권도 bu 사용자로 변경해야 합니다.

    sudo chown bu:bu /home/bu

    이제 외부 USB 드라이브를 마운트하고 그에 따라 권한을 설정했습니다. 지금 다음 명령을 실행하면 /dev/sda1이 /home/bu에 마운트된 것을 볼 수 있습니다.

    df -h
    Filesystem      Size  Used Avail Use% Mounted on
    rootfs           15G  2.4G   12G  18% /
    /dev/root        15G  2.4G   12G  18% /
    devtmpfs        484M     0  484M   0% /dev
    tmpfs            98M  236K   98M   1% /run
    tmpfs           5.0M     0  5.0M   0% /run/lock
    tmpfs           195M     0  195M   0% /run/shm
    /dev/mmcblk0p1   56M   19M   37M  34% /boot
    /dev/sda1       2.7T  260M  2.6T   1% /home/bu

    외부 USB 드라이브에 이미 일부 테스트 데이터가 있기 때문에 이미 260MB를 사용한 것으로 표시됩니다. 새 드라이브에서는 0이어야 합니다.

    16. 부팅 시 외장 USB 드라이브 마운트

    모두 찾은 것 같지만 재부팅 후 외부 USB 드라이브가 더 이상 마운트되지 않습니다. 일반적으로 /etc/fstab에 항목을 추가하기만 하면 되지만 빠르게 부팅되고 USB 감지가 너무 느려지는 문제가 있습니다. 해결책은 오히려 쉽습니다.

    편집: /boot/cmdline.txt

    다음을 포함하는 줄이 있음을 알 수 있습니다.

    dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

    이제 rootdelay=10을 추가하면 됩니다.

    dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait rootdelay=10

    다음 편집 /etc/fstab

    이것을 해당 파일의 끝에 추가하십시오

    UUID=eac53de3-9f06-4e46-999c-684da279298b       /home/bu        ext4    defaults        0       2

    이제 재부팅 후에도 외부 USB 드라이브가 /home/bu에 마운트되도록 했습니다. 내가 테스트한 적이 없는 USB 장치를 두 개 이상 연결했는데 모든 장치를 제대로 추가하지 못했다면 rootdealy를 10개 이상으로 확장할 수 있습니다.

    17. 삼바 구성

    다음으로 네트워크에서 모든 백업을 사용할 수 있도록 samba를 구성합니다. Samba는 smb 프로토콜을 사용하여 Windows를 통해 액세스할 수 있는 네트워크 공유를 제공하는 데몬입니다.

    간단히 /etc/samba/smb.conf를 편집하고 구성 파일의 컨텍스트를 다음으로 바꾸십시오.

    [global]
    
       workgroup = WORKGROUP
       server string = %h server
    ;   wins support = no
    ;   wins server = w.x.y.z
       dns proxy = no
    ;   name resolve order = lmhosts host wins bcast
       name resolve order = bcast lmhosts host wins
    
        socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE
    
    ;   interfaces = 127.0.0.0/8 eth0
    ;   bind interfaces only = yes
    
       hosts allow = 127.0.0.1, 10.0.0.0/24
       hosts deny = 0.0.0.0/0
    
       log file = /var/log/samba/log.%m
       max log size = 1000
    #   syslog only = no
       syslog = 0
       panic action = /usr/share/samba/panic-action %d
    
       security = user
       encrypt passwords = true
       map to guest = bad user
       guest account = bu
    
    #   valid users = root
    
    #======================= Share Definitions =======================
    
    [Backup]
            comment = Backup Share
            path = /home/bu
            read only = yes
            guest only = yes
            guest ok = yes
            hosts allow = 127.0.0.1, 10.0.0.0/24
            force user = bu
            force group = bu
            hosts deny = 0.0.0.0/0

    LAN 외부에 아무 것도 유출되지 않도록 전역 섹션에서 모든 IP 주소를 거부하고 로컬 호스트와 LAN만 허용하도록 설정했습니다. 내 LAN에 10.0.0.x를 사용합니다. 192.168.0.0을 사용하고 있을 가능성이 높으므로 이를 적절하게 변경하십시오.

    또한 글로벌 섹션에서 게스트 계정이 bu 사용자임을 알 수 있고 실제 공유에서 게스트가 액세스 권한이 있고 읽기 전용 액세스 권한이 있음을 알 수 있습니다.

    파일을 저장하고 종료하고 samba를 다시 시작하십시오.

    sudo /etc/init.d/samba restart

    이것으로 서비스 구성이 완료되지 않았습니다.

    18. Raspberry Pi의 제어 파일 백업

    /home/bu/backups.sh를 생성 및 편집하고 다음 콘텐츠로 채웁니다.

    #!/usr/bin/env bash
    
    basePath="/home/bu"
    
    action="${1}"
    
    function checkMonth ()
    {
            now=$(date +"%Y-%m")
            last=$(<checkMonth.txt)
            if [[ ${now} != ${last} ]]
            then
                    # New Month
                    mkdir -p "${basePath}/current/"
                    rm -Rf "${basePath}/current/"*
                    echo "${now}" > "checkMonth.txt"
            fi
    }
    
    
    
    function makeHardlink ()
    {
            # Make hardlink copy
            now=$(date +"%Y-%m-%d_%H-%M")
            mkdir -p "${basePath}/old/${now}"
            cp -al "${basePath}/current"* "${basePath}/old/${now}"
    }
    
    
    
    function checkFree ()
    {
            # Check if old files need to be deleted
            freeSpace=$( df -P | grep "${basePath}" | awk '{print $4}' )
            curUse=$( cd "${basePath}/current" | du -s | awk '{print $1}' )
            estUse=$(( curUse * 2 ))
    
            echo "${freeSpace} - ${curUse} - ${estUse}"
    
            while [[ ${freeSpace} -le ${estUse} ]]
            do
                    echo "Not enough space... removing old backups..."
                    IFS= read -r -d $'\0' line < <(find "${basePath}/old" -type d -maxdepth 1 -printf '% %p\0' 2>/dev/null | sort -z -n)
                    oldDir="${line#* }"
                    rm -Rf "${oldDir}"
                    freeSpace=$( df -P | grep "${basePath}" | awk '{print $4}' )
                    echo "${freeSpace} - ${curUse} - ${estUse}"
            done
    }
    
    
    
    case ${action} in
    
            newMonth)
                            checkMonth
                            ;;
            hardLink)
                            makeHardlink
                            checkFree
                            ;;
    esac

    이 스크립트에는 두 가지 목적이 있습니다. 각 백업 전후에 실행해야 합니다.

    checkMonth 기능은 마지막 백업 이후 새 달이 있는지 확인합니다. 아시다시피 하드디스크가 손상되거나 일부가 고장날 수 있습니다. 이 경우 더 이상 손상된 섹터의 데이터 파일에 액세스할 수 없습니다. 그러나 매번 전체 백업을 생성하려면 많은 디스크 공간이 필요합니다. 디스크 공간을 절약하기 위해 백업을 하드링크합니다. 즉, 동일한 데이터를 가리키는 새 파일 시스템 "인덱스" 파일만 씁니다. 따라서 데이터 섹터가 손상되면 하드링크된 모든 파일이 모두 동일한 데이터를 가리키므로 파일을 더 이상 검색할 수 없습니다. 이러한 위험을 최소화하기 위해 매달 완전히 새로운 백업 세트를 작성합니다. 이것은 저장 공간에서 먹을 것입니다. 예를 들어 데이터가 400GB인 경우 1개월에 400GB + 변경된 파일을 사용하게 됩니다. 두 번째 달에는 또 다른 400GB + 변경된 파일 등을 사용합니다.

    이것은 또한 첫 번째 동기화와 새로운 달의 첫 번째 동기화가 오랜 시간이 걸린다는 것을 의미합니다. 다른 모든 사람들은 빠릅니다.

    makeHardlink 기능은 실제로 마지막 백업의 하드링크 사본을 생성합니다. 하드링크 복사에는 거의 공간이 필요하지 않으며 백업에서는 새 파일만 새로 작성됩니다. 또한 hardlink 복사와 함께 checkFree 기능을 실행합니다.

    checkFree 기능은 /home/bu의 여유 공간을 확인합니다. 또한 마지막 백업에서 사용한 크기를 확인합니다. 여유 공간이 마지막 백업의 두 배 미만인 경우 여유 공간이 다시 두 배가 될 때까지 이전 백업을 제거하기 시작합니다. 백업하려는 데이터가 이미 400GB인 경우 다음 날/다음 백업 시간에 800GB 이상이 될 가능성은 거의 없습니다.

    이는 이 백업 메커니즘을 "영원히" 사용할 수 있음을 의미합니다. 여유 공간이 너무 작아지면 오래된 백업을 자동으로 제거합니다.

    해당 스크립트를 저장한 후 실행 가능하게 만들고 소유권을 bu 사용자로 변경합니다.

    sudo 0755 /home/bu/backups.sh
    sudo chown bu:bu /home/bu/backups.sh

    그게 라즈베리 파이 쪽입니다.

    Linux에서 Rasperry Pi로 백업하기

    라즈베리 파이에 백업하려면 현재 사용자(또는 원하는 경우 루트)를 라즈베리 파이 백업 사용자 계정에 추가하기만 하면 됩니다.

    ssh 클라이언트가 이미 설치되어 있고 사용할 수 있는 공개 키가 있다고 가정합니다. 결국 rsync를 먼저 설치해야 합니다.

    19. 공개 ssh 키 생성

    지금까지 공개 키가 없으면 새로 만드십시오.

    ssh-keygen -t rsa -b 4096 -C ""

    물론 이메일로 바꾸거나 원하는 경우 무엇이든 입력하십시오.

    20. 공개 ssh 키를 Rasperry Pi 백업 사용자에게 복사합니다.

    그런 다음 공개 키를 Raspberry Pi 백업 사용자 계정에 복사해야 합니다.

    ssh-copy-id ~/.ssh/id_rsa.pub 

    bu 및 rpi2bu를 실제 백업 사용자 및 호스트 이름으로 바꿉니다. 어떤 이유로 Raspberry Pi가 호스트 이름으로 감지되지 않으면 IP 주소를 사용하십시오.

    21. 데스크탑에 백업 스크립트 생성

    이제 암호를 제공할 필요 없이 Raspberry Pi에 로그인할 수 있으므로 백업을 수행하는 작은 bash 스크립트가 필요합니다. 바탕 화면에 backup.sh를 만듭니다.

    ~/Desktop/backup.sh"를 편집하고 다음을 추가하십시오.

    #!/usr/bin/env bash
    
    # Check for new month
    ssh  '/home/bu/backups.sh newMonth'
    # Run rsync backup
    rsync -avzpH  --partial --delete ~/ :/home/bu/current/
    # Make backup and check regarding free space
    ssh  '/home/bu/backups.sh hardLink'

    그런 다음 실행 가능하게 만드십시오.

    chmod 0755 ~/Desktop/backup.sh

    그리고 그게 다입니다. 물론 Raspberry Pi의 호스트 이름에 따라 설정된 것을 잊지 말고 다른 것을 사용하는 경우 사용자를 변경하십시오.

    Windows에서 Rasperry Pi로 백업하기

    Windows에서는 멋진 *nix 도구가 모두 없기 때문에 조금 더 어렵습니다. 특히 ssh와 rsync. 그러나 여기에서 간단한 해결책은 패키지에 따라 cygwin을 설치하는 것입니다.

    22. 시그윈 다운로드

    먼저 cygwin을 다운로드하고 설치해야 합니다. 여기에서 다운로드하십시오. 대부분 64비트 버전을 사용하고 싶을 것입니다.

    23. 필수 패키지로 Cygwin 설치

    Cygwin 설치 프로그램 다운로드가 완료되면 실행합니다. 그런 다음 몇 가지 입력을 요구하는 메시지가 표시됩니다. 아래 목록에 따라 입력하십시오.

    다운로드 소스 선택 -> 인터넷에서 설치
    루트 설치 디렉토리 선택 -> C

    그런 다음 패키지 선택 대화 상자가 표시됩니다. 여기서 rsync 및 openssh를 선택하는 것이 중요합니다. 검색 상자를 사용하여 목록을 필터링하는 것이 가장 좋습니다. rsync를 입력하면 Net 폴더에서 찾을 수 있습니다. 그것을 클릭 한 다음 Bin? 열을 지금 확인해야 합니다. openssh에 대해 이것을 반복합니다.

    그런 다음 모든 패키지를 다운로드하고 설치하기 시작합니다. 많은 *nix 도구를 다운로드하므로 시간이 조금 걸립니다.

    24. publich ssh 키 생성

    rsync 및 openssh를 포함하여 cygwin을 설치하면 시작 메뉴에 새로운 "Cygwin" 항목이 생깁니다. 해당 항목 내에서 Cygwin 터미널에 대한 링크를 찾을 수 있습니다. 이것을 실행하면 터미널이 열립니다. 터미널에서 다음 명령을 실행하여 공개 ssh 키를 생성합니다.

    ssh-keygen -t rsa -b 4096 -C ""

    물론 이메일로 바꾸거나 원하는 경우 무엇이든 입력하십시오.

    25. 공개 ssh 키를 Rasperry Pi 백업 사용자에게 복사합니다.

    그런 다음 공개 키를 Raspberry Pi 백업 사용자 계정에 복사해야 합니다.

    ssh-copy-id ~/.ssh/id_rsa.pub 

    bu 및 rpi2bu를 실제 백업 사용자 및 호스트 이름으로 바꿉니다. 어떤 이유로 Raspberry Pi가 호스트 이름으로 감지되지 않으면 IP 주소를 사용하십시오.

    26. 데스크톱에서 백업 스크립트 생성

    이제 텍스트 편집기를 열고 다음을 입력하십시오.

    REM Just a little script for making backups
    
    REM Check if it's a new month
    c:\cygwin\bin\ssh.exe  '/home/bu/backups.sh newMonth'
    REM Make backup with rsync
    c:\cygwin\bin\rsync -avzpH  --partial --delete -e "c:\cygwin\bin\ssh.exe" /cygdrive/c/Users :/home/bu/current/
    REM Make hardlink copy and clean up space if necessary
    c:\cygwin\bin\ssh.exe  '/home/bu/backups.sh hardLink'

    이 파일을 backup.bat로 저장

    데스크탑(또는 다른 위치)에서.

    다른 폴더에 Cygwin을 설치한 경우 해당 경로를 제공합니다(기본적으로 c를 사용함).

    이제 데스크탑에서 backup.bat 파일을 클릭하면 터미널이 열리고 백업이 생성됩니다. Windows 명령(cmd.exe)에서 실행하여 작업이 완료되면 자동으로 닫히지 않도록 할 수도 있습니다.

    백업 확인

    백업을 만드는 것은 거래의 절반에 불과합니다. (a) 백업이 만들어졌는지, (b) 필요한 경우 백업을 사용하여 복원할 수 있는지 확인해야 합니다.

    이를 간단하게 하기 위해 삼바를 더 일찍 설정했습니다. 네트워크 환경을 확인하여 올바르게 구성된 경우 이웃에 rpi2bu라는 컴퓨터/서버가 있어야 합니다. Windows에서 탐색기를 열고 네트워크로 이동하여 표시될 때까지 2-3초 기다리십시오. 예를 들어 Linux에서 Dolphin에서는 장소 사이드바에서 네트워크 아이콘을 클릭하기만 하면 됩니다. 그런 다음 자격 증명 없이 해당 컴퓨터/서버에 들어가면 Backup이라는 이름의 공유가 표시됩니다. 해당 공유를 입력하면 current 및 old 폴더 두 개와 backups.sh 및 checkMonth.txt 파일 두 개가 표시됩니다. 파일을 컴퓨터에 다시 복사할 수 있지만 삼바는 읽기 전용으로 설정되어 있으므로 파일을 삭제할 수 없습니다.

    따라서 몇 개의 파일을 컴퓨터에 다시 복사하고 제대로 실행되는지 확인하십시오. 그렇다면 성공적으로 백업을 만든 것입니다.