|
|
Автоматическое блокирование экрана при отдалении от компьютера мобильного телефона (доп. ссылка 1) |
[комментарии]
|
| Ниже представленный скрипт позволяет организовать автоматический вызов блокировщика экрана при отдалении от компьютера мобильного телефона. В качестве фактора вызова блокировщика используется пропадание указанного устройства Bluetooth из области видимости.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Определение типа окончания строк (Windows или Unix) для текстовых файлов в небольшом Web-проекте |
Автор: Kroz
[комментарии]
|
| Ситуация: небольшой Web-проект разрабатывается несколькими людьми на разных ОС:
Windows и Linux. В результате в некоторых файлах перевод строк сделан в стиле
Windows, в некоторых - в стиле Unix. Неудобство состоит в том, что если
какая-то "интеллектуальная" программа поменяет тип перевода строк, система
контроля версий Subversion помечает все строки как изменившиеся, и нужны
дополнительные усилия чтобы определить реальные изменения. Поэтому было принято
решение определить тип перевода строк в каждом файле, и применить
соответствующие меры (например, использовать атрибут svn:eol-style в subversion).
Скрипт простой, легко кастомизируется под автоматическую конвертацию (с помощью
dos2unix), другие типы файлов, определение стиля Macintosh (в данном случае
различается только Windows и Unix):
for FILE in `find -iname '*.php' -or -iname '*.css' -or -iname '*.js' -or -iname '*.txt' -or -iname '*.xml'` ; do
echo -n "$FILE ... " ;
WIN=`grep -P "\\r$" $FILE | head`;
if [ -z "$WIN" ] ; then
echo "Unix"
else
echo "Windows"
fi
done
|
|
|
|
|
Автоматическое определение в Linux количества процессорных ядер из скрипта |
Автор: Карбофос
[комментарии]
|
| Данный подход можно применять для обработки данных на компьютерных системах с разным количеством процессорных ядер и использовать для параллелизации обработки данных по усмотрению.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Автоматическая обработка фотографий |
Автор: Карбофос
[комментарии]
|
| После покупки сканера для фотоплёнок и его применения у меня возникло несколько сложностей:
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
10 полезных опций для написания однострочников на языке Perl (доп. ссылка 1) |
[комментарии]
|
| В простейших случаях perl можно использовать в командной строке как замену grep и sed, например:
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Поиск "проблемных" бинарников в системе |
Автор: Карбофос
[комментарии]
|
| Если в системе по каким-то причинам есть бинарные файлы, а нет внешних библиотек к ним, то этот скрипт поможет достаточно просто найти такие файлы: ... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Как избавиться от телнета на модемах для сети СТРИМ |
Автор: BlackRu
[комментарии]
|
| Не все знают, что в некоторых модемах, которые в свое время предлагала компания Точка.ру (СТРИМ) установлен Linux,
с работающим телнетом и возможностью входа тех. поддержки.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Сохранение версий небольших проектов (доп. ссылка 1) |
Автор: Марецкий Александр
[комментарии]
|
| Допустим Вы пишете скрипт или маленький проект из нескольких файлов. Соответственно возникает желание периодически
сохранять результат своих трудов, чтобы в случае необходимости откатиться на шаг или два назад.
Для крупного проекта идеально подойдет система контроля версий, а для маленькой задачи подойдет и небольшой shell-скрипт.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Автоматическое изменение правил IPTABLES для IP адресов из записей DynDNS (доп. ссылка 1) |
Автор: zaikini
[комментарии]
|
| Возникла задача предоставить сервис для клиентов, использующих внешние динамические адреса.
Доступ к сервису ограничен правилами IPTABLES.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Массовая конвертация имен файлов и каталогов в другую кодировку (доп. ссылка 1) |
Автор: Марецкий Александр
[комментарии]
|
| Если имена большой группы файлов и каталогов не в 7-битной ASCII-кодировке (латиница),
то при их переносе между операционными системами с разными локальными кодировками могут возникнуть
сложности - нечитаемые знаки вместо привычных имен файлов. Одним из возможных решений будет использование
нижеописанного shell-скрипта, которым можно рекурсивно переконвертировать имена сколь
угодно большой группы каталогов и файлов из одной кодировки в другую (не боится пробелов в именах):
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Определение количества дней в месяце в bash скрипте |
Автор: Брызгалов Константин
[комментарии]
|
| В функции решается задача как определить количество дней в месяце:
Необязательные параметры [месяц [год]]
days_in_month(){
[ "$#" == "2" ] && date -d "$1/01/$2 +1month -1day" +%d
[ "$#" == "1" ] && days_in_month $1 `date +%Y`
[ "$#" == "0" ] && days_in_month `date +'%m %Y'`
}
Или, - односторчник - если нужно узнать количество дней в текущем месяце
date -d "`date +'%m/01'`+1month -1day" +%d
|
|
|
|
|
|
Быстрй перенос лог-файлов в MySQL |
Автор: Alexey Lazarev
[комментарии]
|
| Наверняка, каждый сталкивался с задачей переноса лог-файлов из текстовых файлов в различные БД.
И, наверняка, каждый столкнувшийся начинал писать собственные скрипты под это дело.
Причем большинство виденных мной скриптов основывались на построчном чтении/переносе данных.
Данный способ, конечно, хорош и имеет право на существование, но, к сожалению не очень быстр.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
HTTP сервер на BASH (доп. ссылка 1) |
Автор: mahoro
[комментарии]
|
| 1001-й способ поделиться файлом с коллегами: с помощью простенького HTTP-сервера,
код которого умещается в одной строке:
:;while [ $? -eq 0 ];do nc -vlp 8080 -c'(r=read;e=echo;$r a b c;z=$r;while [
${#z} -gt 2 ];do $r z;done;
f=`$e $b|sed 's/[^a-z0-9_.-]//gi'`;h="HTTP/1.0";o="$h 200
OK\r\n";c="Content";if [ -z $f ];then($e $o;ls|(while $r n; do if [ -f "$n" ];
then $e "<a href=\"/$n\">`ls -gh $n`</a><br>";fi;done););elif [ -f $f ];
then $e -e "$o$c-Type: `file -ib $f`\n$c-Length: `stat -c%s $f`\n";cat $f;
else $e -e "$h 404 Not Found\n\n404\n";fi)';done
Этот сервер заработает на Linux, bash и с хоббитовским netcat с патчем sh-c (добавляющим опцию -c,
такой netcat есть во многих дистрибутивах, как минимум: в ubuntu, debian и fedora core).
После запуска следует зайти по адресу http://ваш_ip:8080.
При запросе корневой директории будет выведен список файлов, при запросе файла
будут отданы корректные заголовки Content-Length и Content-Type. Также сервер корректно
обрабатывает ошибку 404. Просматривать можно содержимой только текущей директории
и сменить ее никак нельзя.
Подробнее про него можно почитать на http://alexey.sveshnikov.ru/blog/2007/08/30/bash-httpd-2/
|
|
|
|
|
Пример мониторинга свободного места на диске. |
Автор: Hamelion
[комментарии]
|
| Наверное, все встречались, когда на том или ином разделе жесткого диска места уже нет. А
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Быстрая передача файла через псевдо-HTTP |
Автор: mahoro
[комментарии]
|
| Когда есть необходимость передать файл с одной машины на другую, а под рукой нет общедоступных ресурсов, можно сделать так: ... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Реализация команды top на Shell |
Автор: rstone
[комментарии]
|
| Должно работать на любом терминале поддерживающем VT Escape последовательности, проверено в Linux, True64 , HP-UX и Соларисе . ... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Автоматизация обновления антивируса ClamAV |
Автор: Дима
[комментарии]
|
| Возможно поможет кому-то. Разместив в кроне, можно забыть о ручном обновлении,
скрипт проверит базы, при необходимости загрузит и соберет обновленную
версию и обновит демоны.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Автоматизация послеустановочной настройки MySQL |
Автор: Alexey Tsvetnov
[комментарии]
|
| #!/bin/sh # # mysql-after-setup # Copyright (c) 2006 Alexey Tsvetnov, [email protected] # Version: 1.4 ... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Скрипт для создания всех пакетов, требуемых по зависимостям, для порта в ОС FreeBSD |
Автор: Alexey Tsvetnov
[комментарии]
|
| По сути, выполняет действия, аналогичные pkg_create с ключём -R, который появился только в FreeBSD 6.x. Однако данный скрипт позволяет указывать короткое имя порта и каталог, в котором создавать пакеты. А главное, он работает и на тех системах, где pkg_create не поддерживает ключ -R. ... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Локальный репозитарий CentOS через HTTP proxy |
[комментарии]
|
| До появления прямого соединения с интернетом (провайдером был открыт только http),
было довольно проблематично поддерживать локальный репозитарий пакетов в актуальном состоянии.
Для выхода из подобной ситуации был написан следующий скрипт,
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Скрипт для автоматизации создания бинарных пакетов для FreeBSD |
Автор: Alexey Tsvetnov
[комментарии]
|
| #!/bin/sh # # Create all packages with sym-links for FreeBSD 5.x+ # # Version: 1.2.2 ... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Скрипт для упрощения монтирования CD-ROMа |
Автор: Антон
[комментарии]
|
| Вот такой простой скрипт:
#!/bin/sh
retval=`/sbin/mount | grep /mnt/cdrom`
if [ -n "$retval" ];
then /sbin/umount /mnt/cdrom 1> /dev/null 2> /dev/null
if [ "$?" -ne 0 ];
then echo "Не могу размонтировать CDROM"
else echo "Размонтировал CDROM"
eject /dev/cdrom
fi
else /sbin/mount /dev/cdrom 1> /dev/null 2> /dev/null
if [ "$?" -ne 0 ];
then echo "Не могу смонтировать CDROM"
else echo "Примонтировал CDROM"
fi
fi
П.С. копируем в каталог /sbin под именем cdm. Сам определяет состояние
|
|
|
|
|
Как прикрепить 48x48 иконку к письму (доп. ссылка 1) (доп. ссылка 2) |
[комментарии]
|
| Содержимое черно-белой 48x48 иконки передается через заголовк X-Face, цветной - Face
(PNG картинка, размером после base64 кодирования не больше 998 байт, разбивка по 79 символов в строке).
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Скрипт для автоматизации настройки iptables фильтра для локальной сети (доп. ссылка 1) |
Автор: Константин Брызгалов
[комментарии]
|
| На разных машинах в моей локальной сети накопилась куча программ,
которым нужен был выход в интернет напрямую. У каждой свой набор портов.
Захотелось на входе иметь минимальную конфигурацию, описывающую
ресурсы, а на выходе набор разрешающих правил для iptables.
В основном были клиент-банки - поэтому и такая терминология в программе.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Скрипт для восстановления процессов на случай сбоя |
Автор: Yurik
[комментарии]
|
| Иногда случается, что при сбое (например при большой нагрузке или при временном отсутствии
каналов связи) важные демоны самостоятельно завершают свою работу.
Например может случаться вот такая ошибка
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Контроль целостности системы штатными средствами |
Автор: Avatar
[комментарии]
|
| Что делать если под рукой нет tripwire или osec, а кривой aide вы пользоваться не хотите.
Часть функций , таких как проверка прав доступа и изменение файлов, можно реализовать штатными стедствами.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Скрипт для сканирования лога dmesg |
Автор: Андрей
[обсудить]
|
| Вот возникла необходимость в постоянном сканировании лога dmesg и выполнении определенных действий.
Возможно общественности пригодится.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Обновление антивирусных баз (AvpUpdate) (доп. ссылка 1) |
Автор: denz
[обсудить]
|
| Автоматическое обновление антивирусных баз, пример скрипта:
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|