Два дня ЛОР героически сражался с Rsync..., chukcha, 11-Дек-16, 00:49 [смотреть все]Понадобилось решить, казалось бы, очень простую задачу - осуществить резервное копирование с диска на диск, исключив из него папки и файлы, лежащие ниже некоторых задаваемых папок. Причем, обязательное условие - эти папки должны задаваться АБСОЛЮТНЫМИ путями. Первым делом быстренько накидал свой вариантrsync -avpH \ --exclude="home/chukcha/.cache/mozilla/firefox/*" \ --exclude="home/chukcha/.config/chromium/Default/*" \ --exclude="home/chukcha/.cache/moonchild productions/pale moon/*" \ /home /mnt/sdc1/
Но я очень плохо разбираюсь в премудростях синтаксиса Rsync, поэтому не удивительно, что он не заработал. Тогда обратился за помощью к легендарному ЛОРУ - https://www.linux.org.ru/forum/general/13066819 Два дня лоровцы героически сражались с этой задачей, но увы, не справились. Сдается мне, уже и не справятся, не по зубам, видно, потому обращаюсь за помощью к вам. PS. Маленькая просьба: только пожалуйста, не надо меня учить "как делать", как это пытались делать лоровцы, а просто приведите рабочий скрипт. Хотя я понимаю, что учить и тыкать в маны гораздо легче, но когда доходит до конкретики, так все разбегаются в разные стороны.
|
- Два дня ЛОР героически сражался с Rsync..., олхнтп, 01:02 , 11-Дек-16 (1)
- Два дня ЛОР героически сражался с Rsync..., chukcha, 01:16 , 11-Дек-16 (2) –1
>>Причем, обязательное условие - эти папки должны задаваться АБСОЛЮТНЫМИ путями. > ну ты это пойди и расскажи авторам rsync-a Иными словами, ты хочешь сказать, что эта задача нерешаема? :-O
- Два дня ЛОР героически сражался с Rsync..., chukcha, 01:20 , 11-Дек-16 (3) –1
> в --exclude пути всегда относительны base dir Это я и без тебя знаю. Но возможно, есть другие решения, без использования параметра --exclude, а какого-то другого, подходящего под этот случай? Например, лоровцы предлагали использовать 'filter' и даже привели готовый пример, но что-то у них с ним не сложилось, он тоже не заработал
- Два дня ЛОР героически сражался с Rsync..., Аноним, 06:24 , 11-Дек-16 (8)
- Два дня ЛОР героически сражался с Rsync..., chukcha, 21:32 , 11-Дек-16 (11) –1
Оказывается, всё-таки есть жизнь на Марсе! :) Спасибо за дельные советы! Ну а те, кто первыми "высказался"... известно ведь, что всегда наверху плавает.Итак: > https://gist.github.com/typomedia/6484306 > но там исключения отдельно вынесены Посмотрел, спасибо. Интересное, хотя для моего юзерского понимания сложноватое решение, но возможно, придется к нему вернуться.
cat orig_exclude.txt| sed 's/^\/home//'>new_exclude.txt rsync -avpH --exclude-from=new_exclude.txt /home /mnt/sdc1/ > Второй вариант указать в качестве исходного пути "/" и добавить маски > "+ /home/" и "- *" в список исключений, при которых несмотря > на указания пути "/" копироваться будет только /home.
Еще одно любопытное решение, спасибо. Как для меня, сложноватое решение, но тем не менее, дающее шанс, если ничего другое не сработает. -------- А пока просьба рассмотреть решение, которое предложил один из лоровцев. Оно привлекло меня свое исключительной простотой. К сожалению, у лоровца оказались сильно испорченые нервы, не долечился, видимо, и диалог прервался на самом интересном месте из-за его хамства. Вот что он предложил: rsync -avpH \ --filter="-/ /home/chukcha/.config/chromium/Default" \ --filter="-/ /home/chukcha/.cache/mozilla/firefox" \ --filter="-/ /home/chukcha/.cache/moonchild productions/pale moon" \ /home /mnt/sdc1/
Его автор категорически убежден, что это работает, и привел различные хитрые доказательства. Доказательства доказательствами, но к сожалению, сколько не бился с этом скриптом, но у меня оно не заработало.
Проверял его очень просто: запустил этот скрипт и наблюдал, что копируется, а что нет. Оказалось, что копируется всё (разумеется, за исключением ранее скопированного), но к сожалению, корируется также и то, что содержится в строках исключения, а такого, конечно, не должно быть. Что я делаю не так - ума не приложу. Или все-таки это решение неправильное?
- Два дня ЛОР героически сражался с Rsync..., Freddy Cuper, 08:36 , 11-Дек-16 (9) +1
- Два дня ЛОР героически сражался с Rsync..., chukcha, 23:09 , 11-Дек-16 (14) –2
Оказывается, всё-таки есть жизнь на Марсе! :) Спасибо за дельные советы! Ну а те, кто первыми "высказался"... известно ведь, что всегда наверху плавает.Итак: > https://gist.github.com/typomedia/6484306 > но там исключения отдельно вынесены Посмотрел, спасибо. Интересное, хотя для моего юзерского понимания сложноватое решение, но возможно, придется к нему вернуться.
cat orig_exclude.txt| sed 's/^\/home//'>new_exclude.txt rsync -avpH --exclude-from=new_exclude.txt /home /mnt/sdc1/
> Второй вариант указать в качестве исходного пути "/" и добавить маски > "+ /home/" и "- *" в список исключений, при которых несмотря > на указания пути "/" копироваться будет только /home.
Еще одно любопытное решение, спасибо. Как для меня, сложноватое решение, но тем не менее, дающее шанс, если ничего другое не сработает. -------- А пока просьба рассмотреть решение, которое предложил один из лоровцев. Оно привлекло меня свое исключительной простотой. К сожалению, у лоровца оказались сильно испорченые нервы, не долечился, видимо, и диалог прервался на самом интересном месте из-за его хамства. Вот что он предложил: rsync -avpH \ --filter="-/ /home/chukcha/.config/chromium/Default" \ --filter="-/ /home/chukcha/.cache/mozilla/firefox" \ --filter="-/ /home/chukcha/.cache/moonchild productions/pale moon" \ /home /mnt/sdc1/
Его автор категорически убежден, что это работает, и привел различные хитрые доказательства. Доказательства доказательствами, но к сожалению, сколько не бился с этом скриптом, но у меня оно не заработало.
Проверял его очень просто: запустил этот скрипт и наблюдал, что копируется, а что нет. Оказалось, что копируется всё (разумеется, за исключением ранее скопированного), но к сожалению, корируется также и то, что содержится в строках исключения, а такого, конечно, не должно быть. Что я делаю не так - ума не приложу. Или все-таки это решение неправильное?
|