У меня есть скрипт, он получает список файлов из файла списка и отправляет эти файлы на сервер с помощью SCP, а затем архивирует эти файлы.Как архивировать только текущий файл
Мне нужно изменить его, чтобы он работал только с файлами, КОТОРЫЕ СОЗДАНЫ СЕГОДНЯ (тогда скрипт запущен)!
Вот мой код -
exec 1> $CODE/WCC_FOA_RMBHUB/logs/rmb_to_afbs_ftp_$(date +"%Y%m%d_%H%M%S").log 2>&1
. $CODE/WCC_FOA_RMBHUB/parms/RMB_To_AFBS.parm
ListFilePath=$CODE/WCC_FOA_RMBHUB/lists
TgtFilePath=$PMDIR/TgtFiles/WCC_FOA_RMBHUB
ArchivePath=$PMDIR/SrcFiles/WCC_FOA_RMBHUB/Archives
Today=`date +%Y%m%d%H%M%S`
MasterAfbsFile=Master_File_RMB_To_AFBS.lst
while read TrgtFileName
do
ZippedFile=$TrgtFileName'.gz.'$Today
if [ -f $TgtFilePath/$TrgtFileName ]
then
echo AFBS Target File $TrgtFileName is available in the path $TgtFilePath
##### NED TO ADD SOME IF CONDITION HERE TO CHECK IF THE FILE IS HAVING TODAYS DATE OR NOT ######
echo Performing SCP
scp $TgtFilePath/$TrgtFileName [email protected]$MACHINE:..$DIRNAME
if [ $? -ne 0 ]
then
echo "ERROR while trying to move the $TrgtFileName to FTP bridge path"
exit $? ;
else
echo scp command executed successfully
echo "File $TrgtFileName is moved to the archival path"
gzip -c $TgtFilePath/$TrgtFileName > $ArchivePath/$ZippedFile
if [ $? -ne 0 ]
then
echo "ERROR while trying to move the $TrgtFileName to Archival path"
exit $? ;
else
echo "File Archival Successful"
rm $TgtFilePath/$TrgtFileName
fi
fi
else
echo AFBS target File $TrgtFileName is not available in the path $TgtFilePath
fi
done <$ListFilePath/$MasterAfbsFile
Я попытался посмотреть на дату файла, используя Grep и найти команду, но я не смог приземлиться на совершенное динамическое решение, пожалуйста, помогите.
Привет Можете ли вы объяснить, как это работает? –
Привет, файл имеет имя файла с полным путем и поэтому он не может GREP его в Masterfile и, следовательно, он всегда выходит из if. Можете ли вы решить эту проблему? Thansk –
Если вы не хотите редактировать мастер-файл (не бойтесь файлов с тем же именем в разных папках), вы можете использовать 'basename $ {file}' или использовать '$ {file ## * /}'. Нет времени, чтобы отредактировать мой ответ с этим. –