перемещать файлы в определенную дату на основе номера прогона, и его следует определять на основе счетчика - PullRequest
0 голосов
/ 25 июня 2019

Я хочу переместить файл TLR, а также все *.log и *.ini в папку с определенной датой, которая называется /app/hard/ec4rd/ec4rd_backup/mmddyyyy_[Run_Number].
Значение [Run_Number] должно определяться на основе счетчика.
Если это первый запуск, то он должен быть 1.
Например: если /u01/app/ec4rd/ec4rd_backup/06202019_1 уже существует, то следует создать новый каталог /app/hard/ecm2fs/KADE_TLE_Backup/06202019_2 и переместить туда файлы и т. Д.

Может кто-нибудь помочь мне, как это сделать с помощью сценария оболочки Unix?

Ниже мой код, который я сделал

#!/usr/bin/ksh
date=`date +"%m%d%Y"`;
cd /app/hard/ec4rd/ec4rd_backup/;
if [ ! -d "$date"_1 ];
then
mkdir "$date"_1;
find /app/hard/ec4rd/ec4rd_backup/*.ini -type f -mtime -1 | xargs -n1 -i mv  {} /app/hard/ec4rd/ec4rd_backup/"$date"_1/;
find /app/hard/ec4rd/ec4rd_backup/*.log -type f -mtime -1 | xargs -n1 -i mv  {} /app/hard/ec4rd/ec4rd_backup/"$date"_1/;
find /app/hard/ec4rd/TLR -type f -mtime -1 | xargs -n1 -i mv  {} /app/hard/ec4rd/ec4rd_backup/"$date"_1/;
elif [ -d "$date"_1 ];
then
mkdir "$date"_2;

find /app/hard/ec4rd/ec4rd_backup/*.ini -type f -mtime -1 | xargs -n1 -i mv  {} /app/hard/ec4rd/ec4rd_backup//"$date"_2/;
find /app/hard/ec4rd/ec4rd_backup/*.log -type f -mtime -1 | xargs -n1 -i mv  {} /app/hard/ec4rd/ec4rd_backup//"$date"_2/;
find /app/hard/ec4rd/TLR -type f -mtime -1 | xargs -n1 -i mv  {} /app/hard/ec4rd/ec4rd_backup/"$date"_2/;
fi

1 Ответ

0 голосов
/ 26 июня 2019

Ваш текущий код может быть легко обобщен путем поиска несуществующего целевого каталога:

#!/usr/bin/ksh
date=`date +"%m%d%Y"`
cd /app/hard/ec4rd/ec4rd_backup
counter=1
while target="$date"_$counter; [ -d $target ]
do  ((++counter))
done
mkdir $target
find /app/hard/ec4rd/ec4rd_backup/*.ini -type f -mtime -1 |
 xargs -n1 -i mv  {} /app/hard/ec4rd/ec4rd_backup/$target
…
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...