У меня есть папка с резервными копиями базы данных, но я хочу автоматизировать ее с помощью cron для удаления старых резервных копий.
поэтому я создал следующий скрипт
#Get the current year
YEAR=$(date +'%Y')
#Get the current month
MONTH=$(date +'%m')
#Delete data from previous months
deleteOldData() { ls /root/copy/dbbackup/smpp_credits/ | awk -F "-" -v m="$MONTH" '$2 < m' | xargs -d "\n" rm -rf ;}
#Delete data from previous years ( if any )
deletePrevYearData() { ls /root/copy/dbbackup/smpp_credits/ | awk -F "-" -v y="$YEAR" '$3 < y' | xargs -d "\n" rm -rf ;}
deleteOldData
deletePrevYearData
Выполнение ls /root/copy/dbbackup/smpp_credits/ | awk -F "-" -v m="$MONTH" '$2 < m'
в терминале работает должным образом (в нем перечислены необходимые файлы).
но после добавления | xargs -d "\n" rm -rf
код запускается и возвращается без какого-либо вывода, и проверка каталога показывает, что файлы все еще там. Кстати, этот код хранится и выполняется из .sh файла