서버 간 데이터 전송

서버 간 데이터 전송

SSH두 서버 (httpmydocs) A간에 액세스 권한이 있으며 B명령줄을 사용하여 주기적으로 데이터를 전송하고 있습니다.AB

scp -rpC /var/www/httpmydocs/* mega_me@mega_debian.com:/var/www/httpmydocs 

이제 매주 데스크톱 컴퓨터에서 서버로 데이터를 백업하고 싶습니다 A. 이 명령줄을 수정하여 특정 시간과 날짜에 자동으로 실행되어 데스크탑 컴퓨터에서 서버로 데이터를 백업하는 스크립트가 되도록 어떻게 도와주실 수 있나요?A

답변1

scp나는 이 작업을 사용하지 않을 것입니다 . rsync어쩌면 .rdiff-backup

$ rsync -avz /var/www/httpmydocs/ \
    mega_me@mega_debian.com:/var/www/httpmydocs/.

이 명령은 이 명령과 유사한 백업을 수행 scp하지만 시간이 지남에 따라 변경된 증분 또는 새 파일만 전송하고 복사된 파일은 건너뜁니다.

의도에 따라 이 --delete스위치를 사용하여 로컬에 더 이상 존재하지 않는 파일을 원격 백업에서 삭제할 수 있습니다.

예약된 작업으로 만들기 위해 cronjob에 넣었습니다. system-y 유형 디렉토리라는 점을 고려하면 빈도에 따라 /etc/cron.daily또는 아래에 crontab 항목을 추가 하겠습니다. /etc/cron.weeklyrsync명령을 쉘 스크립트에 넣고 실행 가능하게 만든 다음 어느 디렉토리에나 배치하면 이 두 가지 빈도 중 하나에서 발생합니다.

인용하다

답변2

특정 시간과 날짜가 꼭 필요한 경우 cron 작업을 사용해야 합니다. 이는 일반적으로 명령줄에서 실행하므로 반드시 시스템 작업일 필요는 없지만 일반적인 크론 작업일 수 있습니다. crontab -e편집할 파일이 제공되며 하단에 추가할 수 있습니다.

10 2 * * 1 test -x /path/to/yourscript || /path/to/yourscript

첫 번째 필드는 분, 두 번째 필드는 시간, 다섯 번째 필드는 요일입니다.

파일은 /path/to/yourscript실행 가능( )이어야 chmod +x하며 다음과 같아야 합니다.

#!/bin/bash
scp -rpC /var/www/httpmydocs/* mega_me@mega_debian.com:/var/www/httpmydocs

이는 귀하의 요구 사항을 충족하지만 몇 가지 문제가 있습니다.

  1. 월요일 오전 2시 10분에 컴퓨터가 다운되면 시작되지 않습니다.
  2. scp매번 완전한 사본이 만들어집니다.

포인트 2의 경우 slm은 이미 적절한 솔루션을 제공했습니다.

yourscript포인트 1은 crontab을 사용하지 않고 입력하여 해결할 수 있지만(slm도 지적했듯이) 매주 실행이 /etc/cron.weekly지정된 시간(또는 순서대로 완료됨)에 실행되므로 실행 시간에 대한 제어력을 잃게 됩니다. 여기서 시간과 요일을 변경할 수 있지만 이는 실행 중인 다른 스크립트에도 영향을 미칩니다./etc/crontab/etc/anacrontab

사용이 /etc/cron.weekly허용되지 않는 경우 방법을 조정할 수 있습니다.내 대답은 여기에 있다일주일에 한 번 이상, 특정 시간 이후에 실행하세요.

관련 정보