2시간마다 새로 생성된 모든 파일을 한 디렉터리에 압축하고 압축된 파일을 다른 디렉터리로 이동하는 방법

2시간마다 새로 생성된 모든 파일을 한 디렉터리에 압축하고 압축된 파일을 다른 디렉터리로 이동하는 방법

/kit/bkp파일은 5분마다 /kit 디렉터리에 생성됩니다. 모든 파일을 압축하고 2시간마다 해당 파일을 디렉터리로 이동하고 싶습니다.

답변1

find your_path -t f -mmin 5 -exec tar -zcvf your_compress_file.tar.gz {} +

스크립트를 만들어서 에 넣을 수 있습니다 crontab.

답변2

스크립트를 작성하고 크론 작업이나 시스템 타이머로 실행되도록 설정하세요. tar스크립트에 적절한 명령을 포함하고 tar의 제외 플래그를 사용하여 /tar/bkp폴더를 taring하지 않도록 하세요. find이 플래그 와 함께 사용하면 -mmin 120압축 파일을 지난 120분 이내에 수정된 파일로 제한할 수 있습니다.

예를 들어:

#!/bin/bash
source='/kit'
dest='/kit/bkp'
find "${source}" -mmin 120 -exec \
  tar cpf "${dest}/$(date +'%Y%m%d%H').tar" --exclude="${dest}" {} +

스크립트는 Execute 를 사용하고 /bin/bash소스 및 대상 경로를 정의하고 지난 120분 이내에 수정된 파일만 선택한 다음 대상 폴더에 year-month-day-hour라는 이름의 tar 파일을 생성하여 권한과 소유권을 유지하고 대상 폴더.

그런 다음 읽기 및 실행 권한 ...쓰기, 읽기 및 실행 권한 ...그리고 이전에 생성한 스크립트에 대한 읽기 및 실행 권한이 crontab -e있는 사용자로 입력합니다 . cron 파일에 다음 줄을 추가합니다./kit/kit/bkp

0 */2 * * * /path/to/your/script.sh > /dev/null

이는 2시간마다 스크립트를 실행하고 stdout을 파이프하여 /dev/null오류가 발생하지 않는 한 스크립트를 자동으로 유지합니다. 오류가 발생하면 Cron이 메시지를 보내야 합니다.

관련 정보