파일 이름 확인 날짜 및 번호

5780 단어 Bash
  • 날짜가 포함된 파일 자동 처리
  • for 문장으로 순서 처리를 하고 싶다(예를 들어 여러 서버에서 원격 케이스를 실행하는 것)
  • 그때 Tips 메모.

    date(MacOSX에 미리 설치된 녀석)


    오늘의 날짜를 출력합니다YYYYmmdd.
    $ date +%Y%m%d
    20141031
    
    YYYY-mm-dd로 어제 날짜를 출력합니다.
    $ date -v-1d +%Y-%m-%d
    2014-10-30
    
    2000년 2월 말의 윤년을 수출하다.
    $ date -v1d -v3m -v0y -v-1d +%Y-%m-%d
    2000-02-29
    
    -v 옵션이 편리합니다.
         -v      Adjust (i.e., take the current date and display the result of the adjustment; not actually set the date) the second, minute, hour, month
                 day, week day, month or year according to val.  If val is preceded with a plus or minus sign, the date is adjusted forwards or backwards
                 according to the remaining string, otherwise the relevant part of the date is set.  The date can be adjusted as many times as required
                 using these flags.  Flags are processed in the order given.
    
    Linux에 있는 그 옵션은 또 다를 거예요.

    해결 번호


    for 및 Brace Expansion에서 반복


    Brace Expansion은 {1..5} 같은 것입니다.
    $ echo {1..5}
    1 2 3 4 5
    
    $ for I in {1..5}; do echo $I; done
    1
    2
    3
    4
    5
    

    printf에서 0

    $ printf "%02i\n" 1
    01
    
    for문장으로 돌리면 됩니다.
    $ for I in {1..5}; do echo "server-$(printf %02i $I).your.domain"; done
    server-01.your.domain
    server-02.your.domain
    server-03.your.domain
    server-04.your.domain
    server-05.your.domain
    

    조합


    원격 케이스에서 여러 서버의 5일 전부터 오늘까지의 로그 파일을 실행합니다!(이하 echo 확인용)
    $ for I in {1..5}; do for D in {4..0}; do echo "ssh server-$(printf %02i $I).your.domain cat /PATH/TO/log.$(date -v-${D}d +%Y-%m-%d)"; done; done
    ssh server-01.your.domain cat /PATH/TO/log.2014-10-27
    ssh server-01.your.domain cat /PATH/TO/log.2014-10-28
    ssh server-01.your.domain cat /PATH/TO/log.2014-10-29
    ssh server-01.your.domain cat /PATH/TO/log.2014-10-30
    ssh server-01.your.domain cat /PATH/TO/log.2014-10-31
    ssh server-02.your.domain cat /PATH/TO/log.2014-10-27
    ssh server-02.your.domain cat /PATH/TO/log.2014-10-28
    ssh server-02.your.domain cat /PATH/TO/log.2014-10-29
    ssh server-02.your.domain cat /PATH/TO/log.2014-10-30
    ssh server-02.your.domain cat /PATH/TO/log.2014-10-31
    ssh server-03.your.domain cat /PATH/TO/log.2014-10-27
    ssh server-03.your.domain cat /PATH/TO/log.2014-10-28
    ssh server-03.your.domain cat /PATH/TO/log.2014-10-29
    ssh server-03.your.domain cat /PATH/TO/log.2014-10-30
    ssh server-03.your.domain cat /PATH/TO/log.2014-10-31
    ssh server-04.your.domain cat /PATH/TO/log.2014-10-27
    ssh server-04.your.domain cat /PATH/TO/log.2014-10-28
    ssh server-04.your.domain cat /PATH/TO/log.2014-10-29
    ssh server-04.your.domain cat /PATH/TO/log.2014-10-30
    ssh server-04.your.domain cat /PATH/TO/log.2014-10-31
    ssh server-05.your.domain cat /PATH/TO/log.2014-10-27
    ssh server-05.your.domain cat /PATH/TO/log.2014-10-28
    ssh server-05.your.domain cat /PATH/TO/log.2014-10-29
    ssh server-05.your.domain cat /PATH/TO/log.2014-10-30
    ssh server-05.your.domain cat /PATH/TO/log.2014-10-31
    
    이렇게 하면 일지 어획이 진전된다

    좋은 웹페이지 즐겨찾기