쉘 스크립트 및 기본 응용 프로그램 소개: 매일 특정 폴더를 보관하도록 컴퓨터를 설정하려면 어떻게 해야 합니까?

쉘 스크립트 및 기본 응용 프로그램 소개: 매일 특정 폴더를 보관하도록 컴퓨터를 설정하려면 어떻게 해야 합니까?

특정 사람들에게 내 보관용 계정 폴더에 대한 액세스 권한을 부여해야 하는 상황이 발생했습니다. 지금까지 그들은 중요한 데이터로 가득 찬 거대한 폴더를 삭제했습니다. 분명히 그들의 컴퓨터 기술에는 약간의 작업이 필요합니다. 다행히 Dropbox 웹사이트에 복원 기능이 있습니다. 하지만 GUI는 그렇게 강력해 보이지 않고 이 사람들이 뭔가를 영구적으로 삭제할까봐 걱정됩니다.

저는 이 폴더의 zip 아카이브를 만들어 매일 로컬 컴퓨터에 저장해 왔습니다. Dropbox 복구 GUI에서 찾을 수 없는 파일을 복구했습니다.

그런데 바쁘거나 게을러서 보관을 잊어버릴까봐 걱정이 됩니다. 그래서 기본적인 자동화 쉘 스크립팅을 배울 수 있는 좋은 기회라고 생각했습니다.

스크립트를 디자인하는 방법

  1. 시작 시 실행
  2. 특정 디렉토리의 zip 아카이브를 만들고 싶은지 확인하라는 메시지를 표시합니다(방법은 모르겠습니다).
  3. 이렇게 하시고 다른 이름으로 저장하세요/path/to/archives/<date>

??

나는 현재 최소한의 bash( cd, ls, ssh등)만 알고 있으므로 이와 같은 작업을 수행하는 방법에 대한 실제 예제는 향후 다른 유용한 유사한 작업을 수행하기 위한 발판이 될 것입니다.

저는 Thinkpad x230에서 Ubuntu를 실행하고 있습니다.

답변1

당신은 사용해야합니다crontab

예:

tarBackup.shRun Every Day at 5am이라는 이름의 스크립트를 갖고 싶다면 crontab항목은 다음과 같습니다.

cronjob먼저 다음 명령을 실행하여 설치하십시오.

crontab -e

다음 항목을 추가합니다.

0 5 * * * xterm -e /path/to/tarbackup.sh

파일을 저장하고 닫습니다.

당신의타르 백업.sh

tarBackup.sh다음 줄이 있어야 합니다 .

#!/bin/bash
echo "Do you wan to backup?(yes/no)"
read input
if [ "$input" == "yes" ] 
then
    tar -cvf dir.tar dir1 dir2
else
    echo "K sir,I won't backup anything"
fi

[예시, 필요에 따라 tar 명령 편집]

crontab의 일반적인 구문은 다음과 같습니다.

1 2 3 4 5 /path/to/some/command

어디

1: Minutes 0-59
2: Hours in 24 hours format
3: Day 0-31
4: Month 0-12
5: Day of the week 0-7
/path/to/some/command - Command or script name to schedule

답변2

왜 압축 파일을 백업용으로 사용하려는지 모르겠습니다.

rsync를 사용하는 경우 새 파일과 변경된 파일만 백업할 수 있습니다(삭제된 파일은 영향을 받지 않음).

예:

#!/bin/bash
# see http://ss64.com/bash/rsync_options.html
DROPBOX=~/Dropbox/
BACKUP=~/dropboxbackup

rsync -rvt $DROPBOX $BACKUP

심벌 마크:

r - 재귀

v-장황한

t - 시간 절약

관련 정보