rsync를 사용한 로컬 백업용 Python 스크립트

Gnu / Linux에는 백업을 수행하는 다른 프로그램이 있지만 개인적으로 그래픽 인터페이스와는 거리가 먼 간단한 것을 좋아합니다 (물론 잘못된 것은 아니지만 사용을 피할 수 있다면 피합니다).
rsync 명령에는 우리가 종종 잊어 버리는 백업의 강력한 동맹이 있습니다. 필요한 모든 요구 사항으로 사본을 만들 수있는 충분한 옵션이 있습니다. 컴퓨터 -767784_640

다음 Python 스크립트는 이러한 목적으로 백업 복사본을 만듭니다. 매우 간단하고이 언어에 대해 전혀 모르는 사람들에게도 새 디렉토리를 동기화하는 스크립트 행을 추가하는 것이 즉시 이루어집니다.
내 컴퓨터에서는 IOmega_HDD라는 외부 하드 디스크를 사용합니다. 귀하의 경우에는 귀하의 경우에 따라 스크립트에서 이름을 바꿀 수 있습니다.
또 다른 방법은 복사본에서 디렉토리를 추가하거나 제거하는 것입니다. 주석 줄과 동일한 스크립트에서 방법을 설명합니다.
작업을 자동화하려면 Python 인터프리터와 스크립트를 넣을 경로를 포함하는 crontab에 줄을 추가 할 수 있습니다. 도움이 되었기를 바랍니다.

경고: 워드 프레스 편집기는 줄의 시작 부분에 공백을 허용하지 않으므로 스크립트에서 필요한 들여 쓰기가 손실되었으므로 공백을 편집기로 제거하고 공백으로 바꿔야하는 마침표 (.)로 대체했습니다. .

————————————————————————————————-
# -*- coding: utf-8 -*-
import os
ruta_usuario=os.getcwd()
ruta_volumen="/media/Iomega_HDD" #Modificar según nombre de disco externo
directorio_destino=ruta_volumen + "/" + "RsyncBackup"
try:
....if os.path.exists(directorio_destino):
........pass
....else:
........os.mkdir(directorio_destino,0777)
....directorios_origen=[] ....rutas_directorios_origen=[] ....#Se añaden los directorios para sincronizar
....directorios_origen.append("Documentos")
....directorios_origen.append("Imágenes")
....directorios_origen.append("Descargas")
....#Añadir aquí otros directorios que se deseen sincronizar
....#o eliminar de las líneas anteriores los que no se deseen
....for rutas in directorios_origen:
....rutas_directorios_origen.append(ruta_usuario + "/" + rutas)
....for rutas in rutas_directorios_origen:
....print "Sincronizando " + rutas + " con " + directorio_destino
....os.system("rsync -ahv --progress" + " " + rutas + " " + directorio_destino)
....print "Proceso terminado"
except OSError:
print "Ha ocurrido un error ¿está el disco externo listo?"
except:
print "Ha ocurrido un error"

---------------------------


18 코멘트, 당신의 것을 남겨주세요

코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   마티아스

    안녕하세요, 어떻게 지내세요?
    나는 대본을 아주 간단하게 좋아했다.
    불쾌하지 않습니다. 저는 Python 2와 3을 지원할뿐만 아니라 더 간단하고 읽기 쉽게 만들기 위해 약간의 수정을가했습니다 (현재는 Python 2에서만 실행할 수 있음).

    관심이 있으시면 두 가지 버전의 링크를 남겨드립니다.
    http://linkode.org/1np9l2bi8IiD5oEkPIUQb5/Yfa4900cA76BpcTpcf4nG1

    1.    단두 트레 흐

      대본이 마음에 들어서 기뻐요

  2.   Nifosio

    의도는 높이 평가되지만 결과는 끈적하고 소시지입니다.
    제 4 살짜리 조카는 여기에 넣은이 감자보다 더 지능적이고 구성 가능한 스크립트를 만들 수 있습니다.

    그건 그렇고, 코드의 들여 쓰기가 잘못되었습니다. 루프를 확인하고 머리카락을 의미하지는 않습니다.

    1.    단두 트레 흐

      스크립트는 완벽하게 작동하고 오랫동안 사용해 왔으며 실제로 공유하는 사람들의 수가 많기 때문에 말한 것만 큼 엉망이되어서는 안됩니다. 조카에게 전화를 걸어 모든 것을 올바르게 입력했는지 확인해야 할 수도 있습니다.

    2.    tr

      이봐, 당신이 너무 자랑한다면, 비판하는 대신에 가치를 평가하는 법을 배우십시오.

      1.    단두 트레 흐

        정확히 tr, Matias는 몇 가지 큰 수정을했습니다. 확실히 스크립트는 개선 될 수 있으며 이것이 바로 협업의 세계에 관한 것이며 Matias가 표현한 것입니다. 우세해야 할 좋은 분위기를 시음하기 위해 개인이 여기에 있다는 것은 부끄러운 일입니다. 저기.

    3.    아바돈

      무례한 비평이 유용하고 대본에 아무것도 추가하지 않는다고 생각하십니까? 빌어 먹을 대본을 작성하고 공유하지 마십시오 !!!!!!!

  3.   이두 노

    여기 다른 버전 : https://gist.github.com/Itsuki4/5acc3d03f3650719b88d
    내가 가진 오류에 주석을 달면 수정하겠습니다 (이제 Windows에 있으며 테스트 할 수 없음).

  4.   제타카01

    저는 파이썬을 사용하지 않고 쉘 스크립트와 함께 rsync를 직접 사용합니다.
    각 소스 및 대상 디렉토리에 대한 행을 넣습니다.
    필자의 경우 증분 복사본을 만드는 장치에 따라 여러 스크립트가 있습니다.
    예를 들어, 내 책을 기본적으로 설치된 128MB USB로 복사하려면
    / media / zetaka01 / Sandisk128 LibrosAusb128.sh 스크립트에 다음 줄을 넣었습니다.

    rsync -av –delete / home / zetaka01 / Books / media / zetaka01 / Sandisk128 /

    대상 디렉토리가 존재하지 않는 경우, 사용자를 위해 생성하고 물론 재귀 적으로 원본에없는 것을 대상에서 삭제합니다.
    인사말.

  5.   제타카01

    아, 두 개의 하이픈이있는 복사 / 붙여 넣기 – 삭제 오류입니다.

    인사

  6.   단두 트레 흐

    그래픽 인터페이스를 작성 하시겠습니까? 나는 Tkinter와 Tix의 가능성을 보았지만 디렉토리 선택을 제어하기 위해서는 아마도 Wx가 더 낫습니다.

  7.   제타카01

    GTK를 기반으로하는 그래픽 인터페이스가 이미 있으며 grsync라고합니다.
    Wikipedia에 대한 링크를 남겨두고 https://en.wikipedia.org/wiki/Grsync
    인사말.

  8.   페르난도

    안녕하세요 여러분. 대본은 내가 알지 못하거나 신경 쓰지 않는 경 이롭거나 단순 할 수 있지만 천 가지 방법으로 말할 수 있으며 잘 말할 수 있는데 왜 잘못 말합니까? 그렇긴하지만 저는 2008 년부터 Linux 사용자 였고이 모든 시간에도 불구하고 배우기가 느리고 스크립트 실행 방법을 포함하여 많은 것을 이해하는 데 어려움을 겪고 있습니다 (쉽다는 것을 알고 있지만 더주지 마세요). 프로그램 등을 컴파일하여 설치하십시오. 그렇기 때문에 그래픽 인터페이스가있는 버전이 있다는 것을 읽었을 때이 페이지를보고 발견했습니다. 서투른 서버를 위해 여기에 남겨 둡니다. 여러분의 노력에 감사드립니다.
    http://www.opbyte.it/grsync/download.html

    1.    단두 트레 흐

      페르난도, 아무 악명도없고 대답해도 괜찮다면 왜 Gnu / Linux를 사용하는지 궁금합니다. 감사합니다.

  9.   제타카01

    글쎄, 그래픽 인터페이스는 매우 친숙하지만 전체 명령이 제공하는 옵션을 제공하지 않습니다.
    또한 내가 측정하기 위해 수행하는 것은 제 경우가 아닙니다. 스크립트, 쉘이든 파이썬이든 원하는 것이 든 원하는 때마다 실행하도록 프로그래밍 할 수 있습니다.
    아, 당신의 리눅스 배포판에서는 리포지토리에 문제없이 rsync와 grsync가 있어야합니다.
    인사말.

  10.   제타카01

    아 페르난도, 2008 년부터 리눅스를 사용해 왔는데 스크립트 실행 방법을 모른다면 말이 없다.
    인사

  11.   곤잘로 마르티네즈

    Pa는 누군가가 협력하기 위해하는 스크립트를 비판하고 콘솔 / 스크립트를 사용하는지 여부를 비판하는 모든 시스템 엔지니어입니까?

    신을 위해 방귀를 얼마나 많이 똥.

    저는 Linux 서버를 10 년 동안 관리해 왔으며 사실은 스크립트로 모든 작업을 수행하는 전자식 설치가 예를 들어 Bacula를 관리하는 것과 같이 오래 전에 통과했습니다. 쉘보다 그래픽 인터페이스를 사용하는 것을 선호합니다. 정말 범죄 적 수단입니다.

    누군가가 인터페이스를 통해 더 편안하게 작업을 수행한다고 느끼면 생산성을 높여야합니다. 그에게 중요한 것은 작업 방식이 아니라 결과입니다.

    이전 직장에서 나는 회사의 IT 영역을 감독했고, 담당자가 그에게 특정한 일을 요청했고, 결과에 관심이 있었는데, 그는«색이없는 vi를 사용하여 아파치에 다른 가상 호스트 구성 ''이라고 말하지 않았습니다. 터미널에서 30 × 20”, 그가 가장 편안하게 해준다고, 그 사람이 그렇게하기를 원한다면 SFTP로 설치하고 창 메모장을 사용하거나 우리 아버지 께기도하는 한 그가 제대로 했어요.

    dandutrech, 스크립트는 목표를 달성합니다. 중요한 것은 셸에서 명령을 호출하는 대신 갑자기 Python-librsync를 사용하는 것입니다. 즉, 내부에서 rsync 함수를 사용하는 라이브러리입니다. 파이썬.

    이식성을 확보하면 스크립트가 Linux, Windows 또는 OS X 등 모든 환경에서 실행됩니다.

  12.   단두트렉

    고마워, 곤잘로. 귀하의 제안은 매우 훌륭하다고 생각하며 대본에 넣을 것입니다. 인사