특정 디렉터리의 특정 파일 이동

특정 디렉터리의 특정 파일 이동

내 디렉토리에 일부 파일이 있습니다/applications/나/all_off파일 이름은 다음과 같습니다.

  • 액세스 로그
  • 알람 배치
  • 경고 서비스 루트
  • db_wrapper_access_log
  • db_wrapper_api_service
  • 대기열 작업 없음
  • mt_push_api_service
  • mtqueue 작업
  • nbp_request_handler
  • 구성 file_api_service
  • 프로모션 API 서비스
  • 대기열 서비스 루트

그런 다음 확장자로 파일 형식을 지정합니다.. 통나무매일 생성되는 형식은 xxxx.log.20190101입니다.

그래서 이 모든 파일을 보관하고 이동하고 싶습니다.(마지막으로 생성된 파일은 전날이었습니다)입력하다/applications/me/all_off/backup/매일 정오 12시.그런데 특정 디렉터리의 파일을 백업하고 싶어요(이름을 기준으로) 예를 들면 다음과 같습니다.

  • /app/me/all_off/backup/access_log/access_log.log.2019010

내 상황에 대한 해결책이 있나요?

파일을 보관하고 이동하기 위해 Shellscript를 사용하고 있는데 파일이 안으로만 들어갑니다./applications/me/all_off/backup/. 아래는 내 쉘스크립트입니다:

(#!/bin/bash ----> "(" 참고사항

날짜1=date -d "yesterday" +%Y%m%d

날짜2=date -d "yesterday" +%Y-%m-%d

logPathMove=$logPath"백업/"

logPath='/app/me/all_off/'

모두 =ls -ltrh *log* *log | awk -F ' ' '{print$9}' | awk -F '.' '{print$1}' | sort | uniq -c | awk -F ' ' '{print$2}'

CD ${logPath}

gzip -9 *.${date1}

gzip -9 *.${date1}.log -------->다른 형식의 파일 이름

gzip -9 *log.${date2}.log --------> 다른 형식의 파일 이름

CD {로그 경로}

i의 경우 *.gz 실행 mv ${i} ${logPathMove};

답변1

자신이 하고 싶은 일이 무엇인지 정확히 파악하기가 조금 어렵습니다. 그러나 쉘 스크립트를 디버깅하는 데 도움이 되는 일반적인 팁은 다음과 같습니다. 스크립트 시작 부분에 다음 줄을 넣으세요.

set -x

따라서 스크립트가 다음과 같은 경우:

b=1
echo a $b

실행하면 생성됩니다.

a 1
$ 

그리고 만약 당신이 그랬다면

set -x
b=1
echo a $b

그것은 생산한다

+ b=1
+ echo a 1
a 1
$

즉, 변수 대체 및 출력과 함께 어떤 명령이 실행되고 있는지 확인할 수 있습니다.

관련 정보