Блог пользователя bliznezz


bliznezz аватар

гуевая ходилка на сервера ssh из списка

есть более 20 серверов, которые различаются одной цифрой на конце IP, и поэтому постоянно забываю кто из них кто. идея написать скрипт родилась из обсуждения в irc:

loord: парни подскажите. надо ходить по SSH на кучу серверов. через консоль удобно. но каждый раз надо помнить пароли и адреса серверов. подскажите есть ли какойто менеджер для такого.
loord: какбы гуевый клиент под ssh это глупо. но впадлу набирать пути каждый раз
мне бы так, чтобы перед глазами было список-наименований. взял одно тыкнул, или набрал и оно зашло.
seven loord: в венде есть удобный Xshell, помнит логины пароли к серверам
enemy loord: 1. авторизация по ключам

предполагается что авторизация по ключам у нас есть
а сам гуй под катом:

bliznezz аватар

datediff

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

интересует поддержка форматов даты:

2008/02/25 11:27:53
Feb 25 11:27:53 2008

как оказалось оба формата поддеживаются date --date="$DATE"

поэтому 0.0.0.1 версия скрипта вышла до горя простой:

#!/bin/bash
 
D1=$(date +%s --date="$1") && D2=$(date +%s --date="$2")
test $? && echo $((D2-D1))

хочется добавить опции -h -m -s, которые будут выдавать часы, минуты, секунды.

bliznezz аватар

brainstorm: chmod -x chmod

итак, предлагаю пошевелить мозгами, и предложить самые извращенные варианты выхода из проблемы:

 /bin/chmod -x /bin/chmod
bliznezz аватар

/tmp/stat - вывод атрибутов файла без парсинга ls

[[temporary place for arcticle create]]
для того чтобы получить такие атрибуты файла как размер используют du, права - getfacl, дата/время последнего доступа, изменения (даже не знаю что).
но обычно мы не ищем легких путей и парсим вывод команды ls -l, забывая о старой, доброй утилитке stat.

вот её типичный вывод (из мана):

$ stat example.file
File: `example.file'
Size: 5614 Blocks: 16 IO Block: 4096 regular file
Device: 30bh/779d      Inode: 786506 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 500/aleksander) Gid: ( 500/aleksander)
Access: 2005-04-26 20:13:06.000000000 +0000
Modify: 2005-04-26 20:17:39.000000000 +0000
Change: 2005-04-26 20:18:09.000000000 +0000

она бы не заслуживала здесь особого внимания, если бы не "свой" формат вывода -c(как в time +%... )

bliznezz аватар

спасение телефонной книги (вслепую с Samsung SGH-E250 )

не относится к Linux (т.к. было под windows), но околокомпьютерное, про низкоуровневым общением между компьютером и телефоном.
Преамбула. у жены умер телефон (Samsung SGH-E250), красненький =)))

у него умер шлейф. надо подключиться к его памяти и слить с него телефонную книжку.

bliznezz аватар

ext3 фрагментация

испытываю негативное влияние фрагментации крупных файлов на хранилице бекапов.

операционка rhel4, файловая система соотв. ext3.
для оценки фрагментации использую команду filefrag из e2fs-utils.

она выдает данные в таком виде:

$ find /DUMP1/ /DUMP2/ -type f -name "*.d*mp" -exec filefrag {} \;
/DUMP1/chidori/file1.dump: 73 extents found, perfection would be 27 extents
/DUMP1/chidori/file2.dump: 255 extents found, perfection would be 1 extent
/DUMP1/chidori/file3.dump: 51 extents found, perfection would be 1 extent
/DUMP1/chidori/file_2008.dump: 203 extents found, perfection would be 1 extent.
/DUMP1/chidori/yesterday.dump: 255 extents found, perfection would be 1 extent
/DUMP1/sagara/db/file1.dump: 255454 extents found, perfection would be 317 extents
/DUMP1/sagara/db/file2.dump: 54210 extents found, perfection would be 104 extents
/DUMP1/sagara/db/file3.dump: 16018 extents found, perfection would be 37 extents
/DUMP1/sagara/file_2008.dump: 203 extents found, perfection would be 1 extent.
/DUMP2/altair/flash_recovery_area/s1/full.dmp: 1366 extents found, perfection would be 9 extents
/DUMP2/altair/flash_recovery_area/s2/full.dmp: 462 extents found, perfection would be 4 extents
/DUMP2/georgia/db/1.dmp: 425 extents found, perfection would be 33 extents
/DUMP2/geordia/db/2.dmp: 317 extents found, perfection would be 32 extents
/DUMP2/optimist/db/Dima.dump: 1 extent found

когда объект один-два, еще можно прочитать и оценить трубуется ли дефрагментация, или терпимо.
но когда их много - пришлось нацарапать скриптик на awk

bliznezz аватар

клепаю скрипт, который будет качать файл с инета кусочками, после чего склеивать.

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

как правило клиент начинает тянуть, думает, думает, потом коннекшн дохнет =/
в тоже время если я запрошу объект не целиком а кусочек, на пример 100мб - то все ок.

bliznezz аватар

мотиватор

while [ $(date +%k%M) -lt 1730 ] ;  do zenity --error --text="РАБОТАТЬ СЦУКО! \n\n\nСОЛНЦЕ ЕЩЕ ВЫСОКО" ; sleep 900; done

bliznezz аватар

TODO

сделать чтобы нагиос при падении сервера матерился в колонки, и говорил имя