The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Готовые скрипты

   Корень / Программисту и web-разработчику / Shell / Готовые скрипты

----* Автоматизация отправки сообщений в Jabber на примере трансляции новостей с OpenNet (доп. ссылка 1)   Автор: Nvb13  [комментарии]
  ++ Введение
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Автоматическое блокирование экрана при отдалении от компьютера мобильного телефона (доп. ссылка 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
 
----* Пример функции математической разности float-чисел в обход bc   Автор: Alexander Driantsov  [комментарии]
  function math_minus {
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Быстрй перенос лог-файлов в 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, vorakl@fbsd.kiev.ua # 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  [обсудить]
  Автоматическое обновление антивирусных баз, пример скрипта:
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 

 Версия для печати





Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру