Bash 스크립트는 현재 날짜와 파일 이름 패턴을 기반으로 파일을 식별합니다.
날짜 패턴을 포함하는 서로 다른 디렉터리에 10개의 파일이 있습니다. 이 파일들을 하나씩 선택하여 원격 사이트로 보내야 합니다.
파일 이름 지정 패턴, 구성 파일의 위치를 나열하고 스크립트에서 선택하려고 하지만 운이 없습니다. 누군가 도와주세요
파일 이름 패턴 및 위치의 예.
/documents/accounts/abc_yyyy-mm-dd.txt
/문서/목록/def_yyyy-mm-dd-txt
/document/newcustomer/ghijkl_yyyy-mm-dd-txt
date=`date +%Y-%m-%d`;
config_file="/scripts/config/abc.cfg";
echo $config_file;
URL="http://localhost:9200/document-$date";
while read var value
do
"$var"= curl -XPUT 'http://localhost:9200/documents-'$date'/document/
done < /path/to/abc.config
매일 이러한 파일을 선택하고 모든 파일을 사용할 수 있게 되면 컬을 사용하여 매일 원격 사이트로 보냅니다.
답변1
이 파일을 만들었습니다.
[leonardo4it@box4it tst] $ ll -R /home/leonardo4it/tst/*
/home/leonardo4it/tst/abc:
total 0
-rw-rw-r-- 1 leonardo4it leonardo4it 0 Dec 28 14:04 abc_2016-12-28.txt
-rw-rw-r-- 1 leonardo4it leonardo4it 0 Dec 28 14:34 excluded.txt
/home/leonardo4it/tst/shhh:
total 0
-rw-rw-r-- 1 leonardo4it leonardo4it 0 Dec 28 14:06 hbcinema_2016-12-28.txt
/home/leonardo4it/tst/u111:
total 0
-rw-rw-r-- 1 leonardo4it leonardo4it 0 Dec 28 14:06 uu_2016-12-28.txt
오늘 사용된 날짜를 구성한 후찾다위와 같습니다. 나는 이 목록을 얻는다
[leonardo4it@box4it tst] $ export dat_day=(`date +%Y-%m-%d`)
[leonardo4it@box4it tst] $ echo $dat_day
2016-12-28
[leonardo4it@box4it tst] $ find /home/leonardo4it/tst/ -type f -name "*$dat_day.txt"
/home/leonardo4it/tst/abc/abc_2016-12-28.txt
/home/leonardo4it/tst/shhh/hbcinema_2016-12-28.txt
/home/leonardo4it/tst/u111/uu_2016-12-28.txt
답변2
#!/bin/bash
date=$(date +%Y-%m-%d)
find /documents/ -type f -name "*${date}.txt" | while read filename
do
echo "filename : ${filename}"
# put your transfer logic here...
done