19 ноября 2011 г.

Поиск и копирование файлов, изменённых за рабочий день

Устал, да и нередко просто забывал, копировать созданные файлы за рабочий день на флешку. Либо скопируешь, но забудешь эту самую флешку на рабочем месте. Чтобы иметь всегда под рукой рабочий материал, решил автоматизировать процесс по переносу файлов на свой сервер.
Получился скрипт, который находит только файлы созданные за последние 9 часов и копирует их в один общий каталог с изменением имени.
#!/bin/sh
# Получить список файлов изменённых за текущий день
# В какой директории искать файлы
DIR=/home/dir1/dir2/
# Куда копировать
DEST=/home/sshfs/encfs/dir1/
# Текущая дата и время
DATE=$(date "+%Y-%m-%d_%H:%M")
for f in $(find ${DIR} -type f -mmin -540 -size +1)
do
# Получить только имя файла
BASE=`basename $f`
# Скопировать файл в файл с другим именем
cp $f ${DEST}${DATE}_${BASE}
done
Сохраняем скрипт под именем, например, /home/auto_copy.sh и заносим задание в cron:

55 18 * * 1-5 sh /home/auto_copy.sh
Теперь каждый день с понедельника по пятницу в 18:55 будет запускаться скрипт с заданием копировать новые файлы в каталог /home/sshfs/encfs/dir1/
PS. Скрипт проверялся на работоспособность в Ubuntu 11.10. Должен работать и в других дистрибутивах Linux.

Комментариев нет:

Отправить комментарий