• ↓
  • ↑
  • ⇑
 
09:59 

Саша это я, да
"Ты пишешь просто удивительно! Как-то нелепо это писать, но не могу удержаться.
Твой дневник - настоящая темная жемчужина в моем избранном, спасибо рандому.."

А потом он все проебал.

21:29 

Саша это я, да
Может быть жизнь этим интересным способом готовит таких, как ты, к счастью? Может быть вся суть ее слов только и заключается в том, что счастье не в материальном удовлетворении, не в успехе, не в чувствах и даже не в других людях. Счастье здесь, говорит она и тычет тебя в грудь. В твоем сердце, внутри тебя. Ты и есть счастье, и вселенная каждую секунду обнимает тебя в надежде впитать его частицу.

Только я этого до сих пор не понимаю. Не понимаю всем сердцем.

00:18 

Саша это я, да
Странно. Странно, что идти некуда. Где мне рады, туда мне не хочется. А там, куда мне хочется, я не нужен. Так и зависаю в пространстве.

03:13 

Что да как

Саша это я, да
Чего я не понимаю:
  1. Люди
  2. Общение с людьми
  3. Жизнь
  4. Деньги
  5. Власть
  6. Жестокость
  7. Любовь
  8. Религии
  9. Вселенная

Что я понимаю:

  1. Смех
  2. Нравственные ценности
  3. Одиночество
  4. Мечты
  5. Печаль
  6. Лень
  7. Музыка
  8. Толстой Л.Н.

01:27 

За пределами

Саша это я, да
Вокруг меня водоворот какой-то непонятной хуиты. Я почему-то могу на него только смотреть, но не чувствую себя участником. В нашем обществе принято считать, что это скверно. В некоторых других обществах, что поменьше и не "наши", это является хорошим признаком. Только глупость в том, что маленьий камушек, который уже много лет лежит под крыльцом моего подъезда, тоже никак не участвует в этом живом процессе. И никому никогда, надо полагать, не приходило в голову оценивать такое поведение камушка — хорошо это или плохо. Ему и самому, должно быть, наплевать.

02:37 

Саша это я, да
Дневник — это контейнер, в который я складываю разноцветные голоса своего сердца. Поэтому я так мало пишу.

02:34 

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

@настроение: Но как делать то, что неизвестно? И зачем в конце концов? Я не знал, я просто не понимал. Простите, снова что-то разрушилось.

21:06 

Саша это я, да
Человек я глупый, неразумный. Единственная отрада состоит в том, что я ясно это осознаю. Яснее с каждым днем. Печаль же в том, что с этим ничего нельзя поделать. Иногда, бывает, задумываюсь над тем, что со мной происходит... и противно становится. И ведь деваться некуда, уж какой есть. В голове моей большая гниющая язва. По идее надо бы радикальные методы лечения использовать — ампутировать к чертям эту голову.

12:06 

Саша это я, да
Жаль, что холод вокруг меня не может заморозить что-то гниющее внутри меня.

07:25 

Саша это я, да
Чертовски не хватает уединения.

07:07 

Саша это я, да
Писал тут несколько постов про expect-подобное решение для винды.
Думаю, следует подвести итог и укомплектовать все описанное в более простую форму.

Еще раз напомню, о чем шла речь. Причиной для всему послужил тот факт, что самые доступные решения, реализующие функционал expect для Windowsб, имели свои, для меня критические, недостатки. Сильнее всего угнетало отсутствие функции interact. Я использовал собственное решение, которое заключалось в совместном использовании C# класса, оболочки PowerShell и консольного приложения plink. В итоге получилось нечто с купированными по сравнению с традиционным expect'ом возможностями , однако вполне пригодное для автоматизации управления сетевыми устройствами. Плюс, что немаловажно, поддержка interact режима.

В общем, что нужно сделать, чтобы оно работало:

  1. Установить PowerShell, если он не был установлен. (Сначала, возможно, потребуется установить .NET Framework 2.0, а потом сам PowerShell).
  2. Установить plink. Автоматически устанавливется вместе с putty, но можно скачать отдельно. Путь к plink.exe обязательно прописать в переменную среды %PATH%.
  3. Скачать отсюда ps скрипт. Его нужно будет подключать ко всем вашим expect скриптам, используя следующую строку:


За примерами и подробностями в этот pdf.

@темы: .NET Framework, C#, PowerShell, Windows, expect, interact, plink, putty

09:01 

Выдержка из Википедии

Саша это я, да
«Воздвигая жертвенники Богу, Аврам продолжал двигаться на юг, однако в той земле был голод, а потому, желая избежать его, Аврам направился в Египет. Приближаясь к этому государству, он велел своей жене Саре назваться сестрой, опасаясь, что из-за её красоты польстившиеся на Сару люди могут его убить. Египетские вельможи действительно сочли Сару весьма красивой и сообщили об этом фараону. Фараон взял её себе в жёны, а Авраму благодаря этому «было хорошо: он имел крупный и мелкий скот, ослов, рабов и рабынь, лошаков и верблюдов». Однако Бог поразил фараона и его дом из-за Сары. Фараон призвал к себе Аврама и спросил, почему же тот не сообщил, что Сара — его жена. После чего отпустил Аврама со всем имуществом, Сарой и Лотом, и фараоновы люди проводили их (Быт.11-12).»

Ветхий Завет
Что ты делаешь?
Ахахах
Прекрати!

06:22 

Люблю я Толстого

Саша это я, да
«... надо перестать думать, что любовь плотская есть нечто особенно возвышенное, а надо понять, что цель, достойная человека, — служение ли человечеству, отечеству, науке, искусству ли (не говоря уже о служении богу) — какая бы она ни была, если только мы считаем ее достойной человека, не достигается посредством соединения с предметом любви в браке или вне его, а что, напротив, влюбление и соединение с предметом любви (как бы не старались доказывать обратное в стихах и прозе) никогда не облегчает достижение достойной человека цели, но всегда затрудняет его.»

12:53 

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

Одиночество, знаете — это сраный краеугольный камень моего тут существования. Оно уже давно вышло за рамки чего-то романтичного, красоты в нем не осталось совсем. С каждым днем оно делает меня все более неправильным, убогим, уродливым. И я не имею ни малейшего понятия о жизни вне его. Она невозможна, на мой взгляд.

Ну да и черт с ним. Неделю назад я имел счастье познакомиться с лучшим утром этого лета. Я думаю, оно просто дожидалось момента , когда вокруг меня не останется ни одной живой души и когда я, наконец, натолкнусь на просторах интернета на группу с названием ifwe. Когда это случилось, мое утро мягкими, спокойными шагами подошло ко мне со спины, вздохнуло и положило свою теплую руку мне на плечо.


20:21 

Фрагменты философии ЧЧ

Саша это я, да

Brother:

...зря, пойдем по философии. Смысл твоей жизни, и чего ты хочешь от данных тебе лет жизни?

ЧЧ:

В идеале - безусловного счастья. А ты?

Brother:

Это объективный ответ, который можно услышать от 99 % населения земного шара. Я жду более конкретного ответа!

ЧЧ:

Нет, большинство скажет - "счастья". Я же говорю о счастье _безусловном_. Проблема, конечно же, заключается в методах достижения. У меня есть формула - доброта, апатия, творчество. Это те три вида "деятельности", которых достаточно, чтобы быть счастливым.

ЧЧ:

Счастье под ногами валяется, только взять его не получается.

ЧЧ:

Самое сложное, наверное, достичь апатии - отсутствия желаний.

Brother:

Предел счастья какой? Точка вершины! В результате мы все равно вниз пойдем, так как мы стареем.

ЧЧ:

Вершина счастья? Она есть?

ЧЧ:

По-моему счастье - булева переменная. Либо есть, либо нет.

Brother:

Не скажи! для кого как, но с одной стороны ты прав. Счастье, это:
1.здоровье родных
2.свое здоровье
3.верность друзей
4.любимая девушка
5.поесть имеется
6.крыша над головой (кров теплый)
7. минимальные перспективы на будущее
Вот, брат, это счастье!!! я повидал беспризорников, которым кушать нечего и живут они в подвалах. Я с ними разговаривал ни раз. А помочь только копейкой мог.

ЧЧ:

Это потребности. А удовлетворенные потребности - далеко не залог счастья.

Brother:

Ты ешь, тебя вырастили и воспитали в тепле, ТЫ С РОДОСЛОВНОЙ!!! Такой же как и я! Мы счастливы должны быть!

ЧЧ:

Должны, но ведь нет.

Brother:

Ты не счастлив? Чего тебе не хватает?

ЧЧ:

А ты счастлив? Если у тебя все это исчезнет, что с тобой будет? Это обусловленное счастье, говорю же.

ЧЧ:

А когда молодость начнет проходить?

Brother:

Здоровье родителей, братья, сестры! Что бы ни кто ни когда не забыл друг друга. Ну конечно дети, жена!

ЧЧ:

Это все хорошо, но едва ли сделает тебя счастливым. То есть гарантии-то точно никакой нет. Это ведь всего лишь зов человеческой природы, механизм внутри нас так работает.

Brother:

Ну например, ты бросишь меня в трудной ситуации?

ЧЧ:

Это не касается сути вопроса.

Я не говорю, что забота о близких - это плохо.

Доброта - это в принципе важно.

Brother:

Хорошо, ты хочешь много-много бабла?

ЧЧ:

Нет. Это снова обусловленность.

Brother:

А я хочу.

ЧЧ:

Я хочу, не имея ничего, чувствовать удовлетворение.

ЧЧ:

С другой стороны у меня много материальных желаний. Я считаю, что это неправильно. Но ничего поделать не могу.


22:28 

Саша это я, да
Держись человек, держись, прошу тебя. Жизнь, она такая, не подруга тебе. Собирай крупицы ее сахара и будь спокоен.

19:40 

Саша это я, да
Сны? Ну да есть у меня сны, и даже не всегда уныло-бытовые, а иной раз весьма радостные и чудесные. Я редко летаю во сне. Чаще я невероятно быстро бегаю и высоко прыгаю, используя при этом, что занимательно, все четыре конечности. Надеюсь, внешне я похож на какого-нибудь лохматого зверя.

Самое замечательное, когда снятся места, которых ты никогда не видел. Города, дома, природа. Здорово, да. Недавно приснился невероятно милый городок. Опрятный, поросший зеленью, тихий, без автотранспорта, с совершенно невероятной архитектурой. Моего восхищения не убавил даже тот факт, что во всех домах перекрестков улиц с шестой по восьмую жили людоеды. Самое жуткое, что они имели полное право невозбранно охотиться на всех, кто ненароком оказывался на их перекрестках.

Существует распростаненный класс кошмаров, в которых человек оказывается в голом виде перед толпой людей. Я в этом плане не исключительный человек, у меня тоже бывают аналогичные сноведения. Только это не кошмары. Я просто спокойно разгуливаю в обнаженном виде по улицам, зданиям, помещениям. Ровно до тех пор, пока кто-нибудь сердобольный не обратит мое внимание на мою же наготу, и не посоветует одеть чего-нибудь, приличия ради. "Да мне вообще похуй!" - думаю или говорю я, но одежду все равно начинаю искать. А то ведь решат, что я девиант какой, а я, знаете, за своей репутацией слежу в каких-то разумных пределах.

19:17 

Саша это я, да
Это неловкое чувство, когда ясно осознаешь степень собственного идиотизма и смехотворности. Сразу хочется съебать отовсюду, далеко и надолго. И жить там в тишине и покое, пока не явится на твою голову непостижимая вселенская мудрость.

16:36 

Саша это я, да
Я бегу в темноте, а по мне стреляет тот, кто в темноте видит прекрасно. Мой путь освещается лишь периодически повторяющимися вспышками от выстрелов. И тогда я вижу, в какое жуткое болото я ненароком забрел .

07:27 

Сказ про Plink, Expect и PowerShell. Часть III: PowerShell!

Саша это я, да
Итак, в предыдущей части мы написали класс на C#, который предоставляет нам следующие методы:
  • Spawn - запуск консольного приложения. По сути это запуск всего одного единственного консольного приложения - plink. Больше для наших целей нам и не надо.
  • Expect - ожидание в выводе определенной последовательности символов. Возвращает true, если последовательность обнаружена, falst - если по истечению таймаута искомая строка не появилась.
  • Send - посылка в поток ввода процесса последовательности символов.
  • Interact - передача управления вводом и выводом пользователю.
  • Close - освобождение ресурсов.

Создадим для каждого из них удобную функцию-оболочку на PowerShell. Для того, чтобы использовать функции написанного нами класса, необходимо включить его в ps скрипте с помощью командлета Add-Type. При этом наш класс может быть уже скомпилированным в виде библиотеки. В этом случае синтаксис такой:

  1. Add-Type -Path $customDll
  2. #$customDll - путь к библиотеке

С другой стороны мы можем вставить исходный текст класса непосредственно в скрипт:

  1. $source = @"
  2. //Исходный код класса
  3. "@
  4. Add-Type -Language CSharp -TypeDefinition $source

Решите сами, какой метод вам больше по душе.
Для начала создадим объект нашего класса, с которым мы будем работать. Одного объекта нам вполне хватит. Также добавим переменную глобальной области видимости $ExpectTimeout, которая будет определять таймаут для всех вызовов метода Expect.

  1. [Zh.ZhExpect] $plink = New-Object Zh.ZhExpect
  2. [int32] $ExpectTimeout = 5
  3. #Функция Spawn-Plink. Запускает plink с заданными аргументами (адрес узла, порт, протокол, пароль, логин)
  4. function Spawn-Plink {
  5. param (
  6. [parameter(Mandatory=$true)]
  7. [alias("h")]
  8. [string]$remoteHost,
  9. [alias("p")]
  10. [string]$port = "",
  11. [alias("pr")]
  12. [string]$proto = "ssh",
  13. [alias("l")]
  14. [string]$login = "",
  15. [alias("pw")]
  16. [string]$password = ""
  17. )
  18. $argumentList = "-$proto"
  19. if ($port.length -gt 0) {
  20. $argumentList = $argumentList + " -P $port"
  21. }
  22. #Аргументы -l и -pw могут быть заданы только для ssh
  23. if ($proto -eq "ssh") {
  24. if ($login.length -gt 0) { $argumentList = $argumentList + " -l $login" }
  25. if ($password.length -gt 0) { $argumentList = $argumentList + " -pw $password" }
  26. }
  27. $argumentList = $argumentList + " " + $remoteHost
  28. $sсriрt:plink.Spawn("plink", $argumentList)
  29. }
  30. #Функция Expect. Вызывает метод plink.Expect и, если он возвращает true, выполняет заданный блок кода $action.
  31. function Expect {
  32. param(
  33. [parameter(Mandatory=$true, Position=1)]
  34. [alias("e")]
  35. [String] $ExpectString,
  36. [parameter(Position=2)]
  37. [alias("a")]
  38. [Scriptblock] $action,
  39. [alias("t")]
  40. [Int32] $timeOut = $sсriрt:ExpectTimeout
  41. [alias("ncl")]
  42. [switch]
  43. [bool] $doNotCleanReceivedText = $false
  44. )
  45. if ($sсriрt:plink.Expect($ExpectString, $timeOut, !$doNotCleanReceivedText)) {
  46. $action.Invoke()
  47. }
  48. }
  49. #Остальные функции в коментариях не нуждаются в виду своей простоты
  50. function Send {
  51. param([parameter(Mandatory=$true)]
  52. [string]$SendString
  53. )
  54. $sсriрt:plink.Send($SendString)
  55. }
  56. function Interact {
  57. param([parameter(Mandatory=$true)]
  58. [string]$stopString
  59. )
  60. $sсriрt:plink.Interact($stopString)
  61. }
  62. function Close-Plink {
  63. $sсriрt:plink.Close()
  64. }

В заключение приведу два простых примера скриптов:

  1. param (
  2. [string]$h = "",
  3. [string]$runCommandAndExit = ""
  4. )
  5. #подключаем наш файл с функциями
  6. . F:\zh\scripts\powershell\bin\Expect.ps1
  7. #
  8. Spawn-Plink -remoteHost $h -proto telnet
  9. Expect 'User name:' { Send "root`r" }
  10. Expect 'User password:' { Send "password`r" }
  11. Expect 'TERMINAL>' { Send "en`r" }
  12. Expect 'TERMINAL#' {
  13. Send "co te`r"
  14. if ($runCommandAndExit -ne "") {
  15. Start-Sleep -Seconds 1
  16. Send "$runCommandAndExitr"
  17. }
  18. }
  19. Expect 'TERMINAL(config)#' { Interact "___" }
  20. Close-Plink

  1. . F:\zh\scripts\powershell\bin\expect.ps1
  2. Spawn-Plink -proto telnet -port 4001 -remoteHost 192.168.60.60
  3. Start-Sleep -Seconds 2
  4. Send "`r`r"
  5. Expect 'user id :' { Send "sysadmin`r" }
  6. Expect 'password:' { Send "sysadmin`r" }
  7. Expect '=>' { Interact "___" }
  8. #Переходим к управлению устройством
  9. Close-Plink


Сказ про Plink, Expect и PowerShell. Предисловие
Сказ про Plink, Expect и PowerShell. Часть I: Простое решение
Сказ про Plink, Expect и PowerShell. Часть II: Нам нужен multithreading (Начало)
Сказ про Plink, Expect и PowerShell. Часть II: Нам нужен multithreading (Продолжение)

@темы: plink, Windows, Powershell, Expect

Выдох Вэйдера

главная