Перезапустите определенный туннель енота

[1184921] Это самый портативный способ, хотя он все еще полагается на [1185311] в основном [1185312] портативный [1185313]/dev/fd/0[1185314] для [1185315].dot[1185316]. Однако без него можно использовать один файл. В любом случае, он в основном полагается на эту функцию оболочки, которую я написал на днях:

Сначала я покажу, как она работает, потом объясню, как. Итак, я создам базу тестовых файлов:

которая создаст кучу файлов, каждый из которых будет назван под номером 1-10, который он содержит:

Это разделенный запятыми список файлов в моем тестовом каталоге, каждый из которых [1185317]? [1185318], представляющий собой новую строку.

Каждый файл содержит только один номер. Теперь я сделаю замену [1185319]grep[1185320]:

Теперь, когда я...

Все файлы

одинаково [1185323]ИЗМЕНЯЮТСЯ[1185324]. Это также работает рекурсивно. Хорошо, теперь я объясню, как.

Во-первых, думаю, функция:

начинается с [1185798]:n[1185799]ext label

\|[1185801]address[1185802]|[1185803] аргумент [1185804]$1[1185805] - маркер

, если текущая строка - [1185806]! [1185807] не совпадает [1185808] { добавляется к [1185928]H[1185929] старому буферу

  • , если текущая линия составляет [1185930]! [1185931] не [1185932] $[1185933] последняя строка [1185934] {
  • перезапишите текущую строку на [1185936]n[1185937] внешнюю строку

b[1185939] ранчо обратно на [1185940]: n[1185941]ext label

}}

else if current line is [1185812]$[1185813]last line [1185814]l[1185815]ook at pattern space

else e[1185816]x[1185817]change of hold and pattern buffers and. ...

l[1185819]ook однозначно на шаблоне пространства

Это первое [1185337]sed[1185338] утверждение - и это в основном мясо и картофель. Мы вообще никогда не [1185339]p[1185340] не прорисовывали пространство образца - мы только [1185341]l[1185342]ook на него смотрим. Так POSIX определяет функцию [1185343]l[1185344]: [1184942]. [1184943] [1185345] [2addr] [1185820]l

(Буква эл.) [1185823] Запишите пространство для образца на стандартный выходной сигнал в визуально однозначной форме. Символы, перечисленные в Базе Определения объема ИВЭЭ Стд 1003.1-2001, таблица 5-1, Побег Последовательности и связанные с ними действия [1185824]( '\\', '\a', '\b', '\f', '\r', '\t', '\v' )[1185825] записываются в виде соответствующей экранирующей последовательности; [1185826] '\n'[1185827]. в этой таблице неприменимо. Символы, не включенные в эту таблицу, не печатаются. таблица пишется в виде одного [1185828] трехзначного [1185829] восьмеричного числа (с указанием предшествующая [1185830]\[1185831]обратная косая черта) для каждого байта в символе (наиболее значительный Сначала байт). Длинные линии должны быть сложены, с точкой сгибания указывается путем написания [1185832]\[1185833]обратной косой черты, за которой следует [1185834]\n[1185835]ewline; длина при котором происходит складывание, не определено, но должно быть уместно, чтобы выходное устройство. Конец каждой строки должен быть отмечен знаком [1185836] "$" [1185837].

Так что если я сделаю:

Я не собираюсь делать тот же уровень детализации, но в основном следующее утверждение [1185353]sed[1185354]:

cd -- '--Recovery Files'

Если линия начинается с маркера [1185838]$1[1185839]. ...

cd -- '--Recovery Files'

Тянет в внешней линии [1185840]N[1185841]до тех пор, пока текущая линия не оканчивается на [1185842]$

  1. Если нужно было сделать то же самое, то снимается обратный слеш [1185844]\[1185845]обратный слеш и [1185846]\n[1185847]символ оси в верхней строке.
  2. Затем он удаляет обратный слеш [1185848]$

находит любой [1185850] \[1185851] обратный слеш, за которым следует число, которому не предшествует другой [1185852] \[1185853] обратный слеш и вставляет ноль

Ищет любые [1185854]'[1185855] одинарные кавычки и удваивает- заключает их в кавычки

Наконец, он окружает всю строку единственными кавычками [1185856]'[1185857]

Итак, теперь, когда я это сделаю:

Я понял:

Остальное вроде как легко. Это зависит от того, что строка [1185369]././[1185370] разрешится, но это произойдет только в выводе [1185371]find/grep[1185372] во главе каждого имени пути - так что это станет моим маркером [1185373]$1[1185374].

I [1185375]-exec grep[1185376] из [1185377] find[1185378] и укажите [1185379]-l[1185380] для него, чтобы он выводил имена файлов для тех файлов, которые содержат регекс.

Я вызываю функцию и получаю ее выход.

Я затем [1185381]\[1185382]обратный слеш экранирует каждый символ в ее выходе для [1185383]xargs[1185384]. И с помощью [1185385] printf[1185386] я пишу сценарий к файлу [1185387] |pipe[1185388] - который я [1185389].dot[1185390] источник как [1185391]/dev/fd/0[1185392]. Я определяю переменную [1185393]f[1185394] как ее текущий аргумент - мое имя - и [1185395]cat[1185396], который [1185397]$f[1185398] аргумент к [1185399] Это может включать в себя временные файлы - это зависит от вашей оболочки. [1185405] bash[1185406] и [1185407]zsh[1185408] выпишут временную папку на каждый наследственный документ - но они их тоже убирают. [1185409]тире [1185410], с другой стороны, просто напишут наследственный документ на анонимный [1185411]|pipe[1185412].

Но важно то, что файл должен быть полностью прочитан до его записи - так работают наследственные документы и подмена команд.[1184972].

2
14.09.2014, 16:01
2 ответа

Вы можете заставить один туннель IPSec повторно подключиться, удалив сопоставление безопасности туннелей (SA).

Используйте это, чтобы найти свои текущие SA:

# setkey -D
# setkey -DP

man setkey (8)

Или, возможно, используйте security / ipsec-tools

0
27.01.2020, 22:58

Я написал кое-что, чтобы помочь мне с этим и поместил в мой .bash_login файл

dtun()
{
  while read a b _ _ c _ 
     do c=${c#*=}
     echo "delete ${a%[*} ${b%[*} esp ${c%(*}; " | setkey -c
  done < <(setkey -D | grep $1 -A 1 | tr -d '\n' | sed -e 's/--/\n/g' )
}

Просто вызовите dtun для удаления SAs

0
27.01.2020, 22:58

Теги

Похожие вопросы