2017-12-05 6 views
0

언제 내 컴퓨터가 시작됩니까 폴더의 내용을 고유 한 폴더로 옮기고 싶습니다.리눅스 플랫폼에서 3 시간마다 폴더의 내용을 고유 한 폴더로 이동하는 방법은 무엇입니까?

예를 들어, 폴더 "A"는 일부 그림을 가지고 있으며 시작시 새 폴더 "B"로 내용을 이동하려고합니다. 3 시간 후에도 폴더 A의 내용을 새로 만든 폴더 C로 옮기고 싶습니다. 3 시간마다 콘텐츠 보관을 위해 새 폴더를 만들어야합니다. 어느 누구도 도움이 될 수 있습니까?

+2

crontab 맨 페이지를 참조하십시오. –

+0

예, cron은 갈 방법입니다 – Cyclonecode

+0

logrotate 또는 이와 유사한 작업과 같은 소리입니다. –

답변

0

지정한 매개 변수에 따라 백업을 만드는 스크립트를 만들었습니다. 단계에 따라 않는 시스템에 추가하려면

  1. 당신은 folder_backup 같은으로 절약 할 수있다 ($ chmod +x folder_backup를 수행하여 스크립트 실행을하는 것을 잊지 마세요).
  2. (선택 단계) 그런 다음 스크립트를 임의의 디렉토리 (sudo cp folder_backup /usr/local/bin)에서 명령으로 실행 가능하게하려면이 파일을 /usr/local/bin으로 복사 할 수 있습니다.

이제 $ ./folder_backup 또는 $ folder_backup를 입력 (복사 한 경우//usr/local/bin 또는 다른 bin 디렉토리로 이동) 중 하나에 스크립트를 실행할 준비가 된 것입니다.

사용법 :folder_backup FOLDER_NAME [BACKUP_FOLDER_NAME] (당신이 FOLDER_NAME_Year-Month-Day_Hour:Minutes에 백업을 저장합니다 지정하지 않을 경우 백업 폴더 이름은 선택 사항입니다 이제 모든 방금 동안 나에 대한 스크립트를 실행해야 할 필요가 있는지

. 예 : while true; do sleep TIME_IN_SECONDS; folder_backup FOLDER_NAME; done. 지정한 폴더가 비어 있지 않으면 타임 스탬프가 포함 된 백업 폴더가 생성됩니다. 구체적인 경우 TIME_IN_SECONDS10800이어야하므로 명령은 while true; do sleep 10800; folder_backup A; done처럼 보일 수 있습니다. 그러나 백업 폴더 이름 지정 알고리즘을 직접 작성하여 다음과 같이 추가 할 수 있습니다. 두 번째 변수 이름은 A입니다. 백그라운드에서 실행하지 않으려면 &while 루프 (done 이후) 끝에 추가하기 만하면됩니다.

희망이 당신이 추구하는 것입니다!

#crontab -e 
@reboot /home/user/startup_script.sh 

일정한 간격 :

#crontab -e 
* */3 * * * /home/user/interval_script.sh 

#!/bin/bash 

create_backup() { 
    # Check if 2 arguments are given to function. 
    if [ -z ${3+x} ]; then 
     # Check if folder from which we will make backup exists. 
     if [ -d ${1} ]; then 
      echo "Creating backup in ${2} of folder ${1}..." 
      mkdir -p ${2} 
      mv ${1}/* ${2}/ 
      echo "Backup stored in ${2}." 
     else 
      echo "There is no folder in ${1}!" 
      exit 1 
     fi 
    else 
     echo "You must specify folder and backup folder name!" 
     exit 1 
    fi 
} 

if [ -z ${2+x} ]; then 
    # Only main folder specified 
    main_folder=${1} 
    date_stamp=`date +%Y-%m-%d_%H:%M` 
    backup_folder=${main_folder}_"${date_stamp} 
elif [ -z ${3+x} ]; then 
    main_folder=${1} 
    backup_folder=${2} 
else 
    echo "Specify folder path or folder name and backup folder path!" 
    exit 1 
fi 

create_backup ${main_folder} ${backup_folder} 
0

crontab 명령이 쉽게 당신의 필요를 달성하는 데 사용할 수 있습니다, 시작 스크립트에 대한 자세한 설명은 here

재부팅 또는 시작 활동 참고 : 필요에 따라 스크립트를 디자인하십시오.

+0

감사합니다. 내 crontab에 알리는 방법이 효과가 있습니다. 나는 그것을 추적 할 수 없다. –

+0

한 가지 방법은 리디렉션 연산자 (> 또는 >>)를 사용하여 스크립트 로그를 수동으로 파일로 리디렉션 할 수 있습니다. 그렇지 않은 경우 [here] (https://stackoverflow.com/questions/4811738/cron-job-log-how-to-log) 및 [여기] (https :// https://stackoverflow.com/questions/)에서 지정한대로 로그에서 Cron 작업 실행을 찾을 수 있습니다. /unix.stackexchange.co.kr/questions/207/where-are-cron-errors-logged)를 참조하십시오. –

+0

@lifetree 설치가 가능합니까? –

관련 문제