Я хочу сделать cronjob, который делает копию каждого файла в / var / log и помещает его в / etc / bak. Что я делаю, создавая файл sh, говорящий
cp /var/log/*.* /etc/bak
Я бы хотел, чтобы эти файлы не были перезаписаны, но были уникальными. Для этого я решил, что хочу поместить дату / время в имя файла. Есть ли способ сделать это возможным при копировании пакетного файла?
Чтобы скопировать файлы в другой каталог и изменить их имена в ходе, я бы рекомендовал использовать for-loop.
Следующий код извлекает имя файла с помощью basename, а затем создает копию этого файла в /etc/bak, названного как исходный файл, с прикрепленной датой.
for file in /var/log/*; do
bn=$(basename $file)
cp $file /etc/bak/${bn}.$(date +%F)
done