В cronjob копировать файлы и изменять их имена на уникальные значения

Я хочу сделать cronjob, который делает копию каждого файла в / var / log и помещает его в / etc / bak. Что я делаю, создавая файл sh, говорящий

cp /var/log/*.* /etc/bak

Я бы хотел, чтобы эти файлы не были перезаписаны, но были уникальными. Для этого я решил, что хочу поместить дату / время в имя файла. Есть ли способ сделать это возможным при копировании пакетного файла?

1
задан 11 December 2013 в 17:22

1 ответ

Чтобы скопировать файлы в другой каталог и изменить их имена в ходе, я бы рекомендовал использовать for-loop.

Следующий код извлекает имя файла с помощью basename, а затем создает копию этого файла в /etc/bak, названного как исходный файл, с прикрепленной датой.

for file in /var/log/*; do 
    bn=$(basename $file)
    cp $file /etc/bak/${bn}.$(date +%F)
done
0
ответ дан 24 May 2018 в 14:15

Другие вопросы по тегам:

Похожие вопросы: