Блог пользователя bliznezz
гуевая ходилка на сервера ssh из списка
есть более 20 серверов, которые различаются одной цифрой на конце IP, и поэтому постоянно забываю кто из них кто. идея написать скрипт родилась из обсуждения в irc:
loord: парни подскажите. надо ходить по SSH на кучу серверов. через консоль удобно. но каждый раз надо помнить пароли и адреса серверов. подскажите есть ли какойто менеджер для такого.
loord: какбы гуевый клиент под ssh это глупо. но впадлу набирать пути каждый раз
мне бы так, чтобы перед глазами было список-наименований. взял одно тыкнул, или набрал и оно зашло.
seven loord: в венде есть удобный Xshell, помнит логины пароли к серверам
enemy loord: 1. авторизация по ключам
предполагается что авторизация по ключам у нас есть
а сам гуй под катом:
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, которые будут выдавать часы, минуты, секунды.
brainstorm: chmod -x chmod
итак, предлагаю пошевелить мозгами, и предложить самые извращенные варианты выхода из проблемы:
/bin/chmod -x /bin/chmod
/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 +%... )
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
клепаю скрипт, который будет качать файл с инета кусочками, после чего склеивать.
проблема - прокси сходит с ума когда объект который надо тянуть - больше 2гб.
проблема из-за того что у этогопрокси есть парент, на котором стоит интерскан, он стягивает себе объект целиком, шерстит и в случае если все ок - возвращает его мне.
как правило клиент начинает тянуть, думает, думает, потом коннекшн дохнет =/
в тоже время если я запрошу объект не целиком а кусочек, на пример 100мб - то все ок.
мотиватор
while [ $(date +%k%M) -lt 1730 ] ; do zenity --error --text="РАБОТАТЬ СЦУКО! \n\n\nСОЛНЦЕ ЕЩЕ ВЫСОКО" ; sleep 900; done
TODO
сделать чтобы нагиос при падении сервера матерился в колонки, и говорил имя


