Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Помогите написать регулярное выражение  (Прочитано 697 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн saifuddin

  • Автор темы
  • Активист
  • *
  • Сообщений: 918
    • Просмотр профиля
Доброго всем дня!
Помогите написать рег выражение.
Есть две папки в которых, находятся папки и файлы . Нужно сравнить эти папки и вывести(или записать в файл) список всех измененных и удаленных файлов/папок за вчерашний день.

Первоначально все сделал через diff. Но, потом понял, что он же сравнивает все файлы и папки. А, мне нужны только, те, что за последние сутки были. Тут то и загвоздка. Не знаю, что и делать.

Подскажите, кто можете, что тут можно сделать?

ТС не появлялся на Форуме более полугода по состоянию на 14/07/2019 (последняя явка: 28/07/2017). Модератором раздела принято решение закрыть тему.
--zg_nico
« Последнее редактирование: 14 Июля 2019, 01:52:21 от zg_nico »
Ubuntu 22.04

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Помогите написать регулярное выражение
« Ответ #1 : 26 Августа 2016, 13:56:58 »
Нужно сравнить эти папки
вывести(или записать в файл) список всех измененных и удаленных файлов/папок за вчерашний день.
Это две разные задачи: сравнить — значит вывести отличие одного от другого, список измененных — это список измененных, а вот что касается удаления, то тут надо где-то хранить «эталонный» список. Предлагаю внятно сформулировать что именно Вам надо.
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Помогите написать регулярное выражение
« Ответ #2 : 26 Августа 2016, 14:16:18 »
saifuddin, есть такое понятие как конвеер. Поиск изменений по времени. Это передаёшь на вход твоему алгоритму сравнения.
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн saifuddin

  • Автор темы
  • Активист
  • *
  • Сообщений: 918
    • Просмотр профиля
Re: Помогите написать регулярное выражение
« Ответ #3 : 02 Сентября 2016, 16:05:42 »
Хорошо, подскажите, как тогда можно реализовать инкрементальный бэкап файлов с таким условием, чтобы у меня не накапливались все удаленные файлы в полном backup. А, удалялись.

Объясняю по подробнее.

Есть три папки:
full полный backup
inc  Incremental backup
origin папка с текущими файлами

Делаем полный backup сохраняя в него все файлы из origin. Проходит день. Делаем inc backup. В этом backup должны находиться все добавленные и модифицированные файлы. Так же видимо виде некого файла должен находиться список того, что было удалено за этот день. И таких inc должно быть несколько шт.

Следующим шагом нужно будет по порядку эти inc backup склеить. Повторюсь с обязательным условием, чтобы не накапливались старые файлы, а удалялись если их не было на момент создания inc backup. Так же должны быть добавленные новые и модифицированные файлы и папки.

Не важно делать в архиве или в папке. Так как речь идет об изображениях по большей части.
Ubuntu 22.04

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Помогите написать регулярное выражение
« Ответ #4 : 02 Сентября 2016, 16:09:59 »
Зачем нужны inc? rsync например так и сделает сразу с full что надо без всяких списков…
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн saifuddin

  • Автор темы
  • Активист
  • *
  • Сообщений: 918
    • Просмотр профиля
Re: Помогите написать регулярное выражение
« Ответ #5 : 02 Сентября 2016, 16:11:57 »
Нужно иметь возможность отката назад на несколько дней. Вот и нужен inc backup из-за этого. До этого использовал rsync, пока не появилась потребность в откате назад.
Ubuntu 22.04

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Re: Помогите написать регулярное выражение
« Ответ #6 : 02 Сентября 2016, 23:25:56 »
Цитировать
чтобы у меня не накапливались все удаленные файлы в полном backup
Код: (bash) [Выделить]
while read F ; do
[ -f "$orign_dir${F#$full_bkp_dir}" ] || rm -vf "$F"
done < <(find "$full_bkp_dir" -type f) &> Log.txt

В переменных-путей к директориям full_bkp_dir и orign_dir не ставить слеш в конце.
« Последнее редактирование: 02 Сентября 2016, 23:48:38 от renzrv »

Оффлайн saifuddin

  • Автор темы
  • Активист
  • *
  • Сообщений: 918
    • Просмотр профиля
Re: Помогите написать регулярное выражение
« Ответ #7 : 03 Сентября 2016, 10:46:43 »
Спасибо за скрипт!

Вот думаю, возможно придется ставить rdiff-backup он вроде умеет делать, все то, что я оговорил в условии...
Python+rsync  с возможностью отката на нужную дату. Кто-то уже пользовался им?

Пользователь добавил сообщение 03 Сентября 2016, 10:48:02:
Честно большое спасибо за этот скрипт. А, то я сильно голову ломал, как на баше можно это реализовать... )))
Ubuntu 22.04

Оффлайн saifuddin

  • Автор темы
  • Активист
  • *
  • Сообщений: 918
    • Просмотр профиля
Re: Помогите написать регулярное выражение
« Ответ #8 : 12 Сентября 2016, 11:07:43 »
Добрый день.
Помогите написать bash скрипт
Нужно рекурсивно пройтись по папкам, в каждой папке возможны еще папки. Нужно папке выставить rx права.
Ubuntu 22.04

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Помогите написать регулярное выражение
« Ответ #9 : 12 Сентября 2016, 11:41:48 »
Код: (bash) [Выделить]
find <папка> -depth -type d -exec chmod 555 {} +
Пользователь добавил сообщение 12 Сентября 2016, 11:55:04:
Вариант 2
Код: (bash) [Выделить]
shopt -s globstar ; chmod 555 **/ ; shopt -u globstar
« Последнее редактирование: 12 Сентября 2016, 11:55:04 от Azure »
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн saifuddin

  • Автор темы
  • Активист
  • *
  • Сообщений: 918
    • Просмотр профиля
Re: Помогите написать регулярное выражение
« Ответ #10 : 12 Сентября 2016, 12:05:01 »
Большое спасибо! Теперь буду знать, как это делать. Раньше видел, подобный вариант, только ни как не мог его найти.
Ubuntu 22.04

 

Страница сгенерирована за 0.068 секунд. Запросов: 23.