Я пошел бы с подоболочкой и двумя командами sed, чем-то вроде этого:
beg_tag='# BEGIN DYNAMIC BLOCK - DO NOT EDIT MANUALLY'
end_tag='# END DYNAMIC BLOCK'
(
sed "/^$beg_tag"'$/,$d' oldconf
echo "$beg_tag"
wget -O - http://$SERVER/get_config.php
echo "$end_tag"
sed "1,/^$end_tag/d" oldconf
) > newconf
Будьте осторожны для не помещения любых sed-значительных символов в beg_tag
и end_tag
.
Это добавит вывод, если никакие теги не будут присутствовать. Первая команда sed никогда не будет удалять строк из входа, и вторая команда sed удалит все строки.
Тестирование
Если oldconf
содержит:
(...content...)
# BEGIN DYNAMIC BLOCK - DO NOT EDIT MANUALLY
(... more content ...)
# END DYNAMIC BLOCK
(... even more content ...)
И команда wget заменяется echo hello world
, вывод:
(...content...)
# BEGIN DYNAMIC BLOCK - DO NOT EDIT MANUALLY
hello world
# END DYNAMIC BLOCK
(... even more content ...)
Теперь, если блок удален, т.е. следующий вход используется:
(...content...)
(... even more content ...)
Вывод:
(...content...)
(... even more content ...)
# BEGIN DYNAMIC BLOCK - DO NOT EDIT MANUALLY
hello world
# END DYNAMIC BLOCK
Не уверенный, если существует обходное решение на стороне Linux, но закрепление на стороне Windows определенно работает.
Большинство сообщений на веб-упоминании 2 ключа реестра и перезагрузка. На самом деле только одно изменение реестра необходимо в Windows 7 и никакой перезагрузке. Только сервисный перезапуск.
Говорите со своим системным администратором Windows. Если можно получить его к скопировать/вставить этому в командную строку, она должна работать:
reg add HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters /v Size /t REG_DWORD /d 3 /f
sc stop LanmanServer
sc start LanmanServer
[SC] ControlService FAILED 1051: A stop control has been sent to a service that other running services are dependent on.
) но powershell работал stop-service lanmanserver -force -PassThru
– KCD
20.05.2015, 12:54
Когда я встретился с этим, я просто перезапустил сервис 'Сервера' в Windows 7, и затем монтирование работало.
Эту проблему решает комбинация использования sec = ntlm в fstab и изменения параметра Size службы LanmanServer в Windows.