синк определенной папки

Языки программирования, IDE, компиляторы, интерпретаторы, гипервизоры и виртуальные среды
Правила форума
Как правильно задавать вопросы Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 1. Для начала воспользуйтесь поиском форума. 2. Укажите версию ОС вместе с разрядностью. Пример: LM 19.3 x64, LM Sarah x32 3. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 4. Какое железо. (достаточно вывод inxi -Fxz в спойлере (как пользоваться спойлером смотрим здесь)) или же дать ссылку на hw-probe 5. Суть. Желательно с выводом консоли, логами. 6. Скрин. Просьба указывать 2, 3 и 4 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
Аватара пользователя

Автор темы
broken
Сообщения: 307
Зарегистрирован: 31 авг 2016, 22:45
Решено: 2
Благодарил (а): 18 раз
Поблагодарили: 12 раз

синк определенной папки

Сообщение broken » 25 мар 2021, 07:59

Раньше синкал раздел целиком. Но подумал, что конкретную папку синкать будет удобней.
Написал это.

Код: Выделить всё

#!/bin/bash

newPwd="/media/dma/5TB/hardD/"

bPwd=`pwd`
cbPwd="$bPwd/"
#echo -ne "${beginPwd:11}"

newnewPwd="$newPwd${beginPwd:11}"
#echo -ne "$newnewPwd/"

rsync -rlstvupx --delete --progress "$cbPwd" "$newnewPwd"
Создал в начальном пункте папку, в ней вложенные. Создал в конечном пункте папку, но без вложенных.. Запустил. Эта зараза мне всё в конечном пункте посносила и оставила только ту папку, которую синкал о_О
Подскажите, пожалуйста, где ошибся?

Решение broken » 25 мар 2021, 14:48
Всё! Всем спасибо за участие! Немного ошибся я в расчетах! Теперь работает!

Код: Выделить всё

#!/bin/bash

#Задаем неизменную часть конечного пути
newPwd="/media/dma/5TB/hardD"
#Получаем начальный путь
bPwd=`pwd`
#Добавляем к нему слеш
cbPwd="$bPwd/"
#Задаем конечный путь
newnewPwd="$newPwd${cbPwd:10}"
#Синхронизация от начального к конечному
rsync -rlstvupx --delete --progress "$cbPwd" "$newnewPwd"
 ! Сообщение из: Dja
Пометил как решение, но с оговоркой: для индивидуального случая!

Перейти к ответу ➙

Аватара пользователя

demonlibra
Сообщения: 632
Зарегистрирован: 12 авг 2017, 06:09
Решено: 7
Откуда: Ростов-на-Дону
Благодарил (а): 15 раз
Поблагодарили: 129 раз

синк определенной папки

Сообщение demonlibra » 25 мар 2021, 08:32

${beginPwd:11}"
что-то не вижу определения переменой beginPwd в сценарии
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-20.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD

Аватара пользователя

Автор темы
broken
Сообщения: 307
Зарегистрирован: 31 авг 2016, 22:45
Решено: 2
Благодарил (а): 18 раз
Поблагодарили: 12 раз

синк определенной папки

Сообщение broken » 25 мар 2021, 08:37

demonlibra, точно! Спасибо! Забыл про него!

Аватара пользователя

demonlibra
Сообщения: 632
Зарегистрирован: 12 авг 2017, 06:09
Решено: 7
Откуда: Ростов-на-Дону
Благодарил (а): 15 раз
Поблагодарили: 129 раз

синк определенной папки

Сообщение demonlibra » 25 мар 2021, 08:47

Вы затёрли содержимое "/media/dma/5TB/hardD/"?
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-20.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD

Аватара пользователя

Автор темы
broken
Сообщения: 307
Зарегистрирован: 31 авг 2016, 22:45
Решено: 2
Благодарил (а): 18 раз
Поблагодарили: 12 раз

синк определенной папки

Сообщение broken » 25 мар 2021, 08:49

demonlibra, да :dash2:
Но я понял почему )
Уже значит 2 ошибочных момента было в скрипте :)

Аватара пользователя

demonlibra
Сообщения: 632
Зарегистрирован: 12 авг 2017, 06:09
Решено: 7
Откуда: Ростов-на-Дону
Благодарил (а): 15 раз
Поблагодарили: 129 раз

синк определенной папки

Сообщение demonlibra » 25 мар 2021, 08:54

rsync отличное решение для синхронизации по расписанию.
Рекомендую обратить внимание на программу freefilesync, которая позволяет выполнять синхронизацию "не вслепую".
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-20.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD

Аватара пользователя

Автор темы
broken
Сообщения: 307
Зарегистрирован: 31 авг 2016, 22:45
Решено: 2
Благодарил (а): 18 раз
Поблагодарили: 12 раз

синк определенной папки

Сообщение broken » 25 мар 2021, 10:58

Итоговый вариант получился такой

Код: Выделить всё

#!/bin/bash

newPwd="/media/dma/5TB/hardD/"

bPwd=`pwd`
cbPwd="$bPwd/"
#echo -ne "${beginPwd:11}"

newnewPwd="$newPwd${cbPwd:11}"
#echo -ne "$newnewPwd"

rsync -rlstvupx --delete --progress "$cbPwd" "$newnewPwd"
Проверил, работает!
Опять же для конкретно моего случая!!!

Аватара пользователя

Автор темы
broken
Сообщения: 307
Зарегистрирован: 31 авг 2016, 22:45
Решено: 2
Благодарил (а): 18 раз
Поблагодарили: 12 раз

синк определенной папки

Сообщение broken » 25 мар 2021, 11:41

А как бы сделать чтоб оно еще экранировало пробел в пути при получении от pwd?

Аватара пользователя

demonlibra
Сообщения: 632
Зарегистрирован: 12 авг 2017, 06:09
Решено: 7
Откуда: Ростов-на-Дону
Благодарил (а): 15 раз
Поблагодарили: 129 раз

синк определенной папки

Сообщение demonlibra » 25 мар 2021, 11:47

Вы же сами "экранировали" результат cbPwd="$bPwd/"
Или я не понял вопроса и требуется пояснение.
Что и зачем нужно сделать? И с какой проблемой боремся?
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-20.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD

Аватара пользователя

Автор темы
broken
Сообщения: 307
Зарегистрирован: 31 авг 2016, 22:45
Решено: 2
Благодарил (а): 18 раз
Поблагодарили: 12 раз

синк определенной папки

Сообщение broken » 25 мар 2021, 11:49

Код: Выделить всё

dma@dma-work:~$ cd Рабочий\ стол/
dma@dma-work:~/Рабочий стол$ pwd
/home/dma/Рабочий стол
dma@dma-work:~/Рабочий стол$ 
вот я о чем...
Для команды нужно чтоб было \

Аватара пользователя

rogoznik
Сообщения: 8302
Зарегистрирован: 27 июн 2017, 10:36
Решено: 90
Откуда: Нижний Тагил
Благодарил (а): 492 раза
Поблагодарили: 1496 раз

синк определенной папки

Сообщение rogoznik » 25 мар 2021, 11:52

Код: Выделить всё

nick ~                                                                                                                                            
▶ a="Рабочий стол"         

nick ~                                                                                                                                            
▶ cd $a     

nick ~/Рабочий стол                                                                                                                               
▶ a="$(pwd)"      

nick ~/Рабочий стол                                                                                                                               
▶ echo $a
/home/nick/Рабочий стол

nick ~/Рабочий стол                                                                                                                               
▶ cd / 

nick /                                                                                                                                            
▶ cd $a

nick ~/Рабочий стол                                                                                                                               
▶ 
ИзображениеИзображение

Аватара пользователя

demonlibra
Сообщения: 632
Зарегистрирован: 12 авг 2017, 06:09
Решено: 7
Откуда: Ростов-на-Дону
Благодарил (а): 15 раз
Поблагодарили: 129 раз

синк определенной папки

Сообщение demonlibra » 25 мар 2021, 11:53

Я не понимаю, что и зачем Вы это делаете :cray2:

Не знал, что так можно cd Рабочий\ стол/
Всегда писал cd "Рабочий стол"
Последний раз редактировалось пользователем 2 demonlibra; всего редактировалось раз: 25
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-20.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD

Аватара пользователя

Автор темы
broken
Сообщения: 307
Зарегистрирован: 31 авг 2016, 22:45
Решено: 2
Благодарил (а): 18 раз
Поблагодарили: 12 раз

синк определенной папки

Сообщение broken » 25 мар 2021, 11:54

demonlibra, понял ) решу кавычками. Спасибо!

В сети
Аватара пользователя

Chocobo
Сообщения: 9668
Зарегистрирован: 27 авг 2016, 19:57
Решено: 208
Откуда: НН
Благодарил (а): 741 раз
Поблагодарили: 2829 раз

синк определенной папки

Сообщение Chocobo » 25 мар 2021, 11:55

broken,

Код: Выделить всё

➜  Рабочий стол:  pwd | sed 's/ /\\ /g'  
/home/chocobo/Рабочий\ стол
Изображение
   
Изображение

Аватара пользователя

demonlibra
Сообщения: 632
Зарегистрирован: 12 авг 2017, 06:09
Решено: 7
Откуда: Ростов-на-Дону
Благодарил (а): 15 раз
Поблагодарили: 129 раз

синк определенной папки

Сообщение demonlibra » 25 мар 2021, 12:01

Еще вот эта конструкция ${cbPwd:11} попахивает отсутствием "универсальности".
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-20.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD

Аватара пользователя

Автор темы
broken
Сообщения: 307
Зарегистрирован: 31 авг 2016, 22:45
Решено: 2
Благодарил (а): 18 раз
Поблагодарили: 12 раз

синк определенной папки

Сообщение broken » 25 мар 2021, 12:35

Chocobo, в теле скрипта почему-то не хочет...

Код: Выделить всё

dma@dma-work:~/Рабочий стол$ cat test.sh 
bPwd=`pwd | sed 's/ /\\ /g'`

echo "$bPwd"
dma@dma-work:~/Рабочий стол$ bash test.sh
/home/dma/Рабочий стол
dma@dma-work:~/Рабочий стол$ 

В сети
Аватара пользователя

Chocobo
Сообщения: 9668
Зарегистрирован: 27 авг 2016, 19:57
Решено: 208
Откуда: НН
Благодарил (а): 741 раз
Поблагодарили: 2829 раз

синк определенной папки

Сообщение Chocobo » 25 мар 2021, 12:48

broken, echo откидывает символы экранирования при выводе на экран
с тем же cd должно сработать. Ну и как выше указали, кавычки - тоже должны прокатить, тут уже на твое усмотрение)
Изображение
   
Изображение

Аватара пользователя

Автор темы
broken
Сообщения: 307
Зарегистрирован: 31 авг 2016, 22:45
Решено: 2
Благодарил (а): 18 раз
Поблагодарили: 12 раз

синк определенной папки

Сообщение broken » 25 мар 2021, 12:50

с кавычками вообще какая-то лажа выходит...
Но буду пробовать

Аватара пользователя

slant
Сообщения: 3028
Зарегистрирован: 21 июн 2017, 15:09
Решено: 56
Благодарил (а): 37 раз
Поблагодарили: 1261 раз

синк определенной папки

Сообщение slant » 25 мар 2021, 12:55

broken, использовать относительные пути вообще, и pwd в частности в сценариях cron - ОЧЕНЬ плохая практика. Чреватая огромным количеством неприятностей, особенно в сочетании с такими вещами как rsync в режиме полной синхронизации.

Хотите спокойной жизни - используйте абсолютные пути.

А еще у вас принципиальная логическая ошибка в сценарии - не задан текущий каталог явным образом перед использованием pwd. Когда сценарий запускается cron'ом это дает неопределенность, т.к. рабочим каталогом может оказаться совсем не тот, на который вы рассчитываете.

Если же этот сценарий не для cron - тогда опишите желаемую логику работы, а то видится мне здесь очередное переусложнение простой задачи...

Аватара пользователя

Автор темы
broken
Сообщения: 307
Зарегистрирован: 31 авг 2016, 22:45
Решено: 2
Благодарил (а): 18 раз
Поблагодарили: 12 раз

синк определенной папки

Сообщение broken » 25 мар 2021, 13:14

slant, запускаться будет не кроном. Вручную. Т.е. зашел в папку - открыть здесь консоль - написал алиас и выполняется.
Конечно, я посмотрю на вариант предложенный синк определенной папки (Пост demonlibra #113758)
Но в нем по мне слишком много мышетыканья... А тут.... надумал засинкать бац и готово! Хард внешний один и тот же. Соответственно часть пути не меняется, поэтому я ее и урезаю. И конечный путь складывается из пути подключаемого девайса + часть текущего пути.

Вернуться в «Программирование, скриптинг, виртуализация»