script

Перебрать список файлов в каталоге

переберет в текущем каталоге

#!/bin/bash 
for i in *
do
  echo $i
done

так же вместо * можно указать *.jpg и прочее

insserv: warning: script missing LSB tags and overrides

когда insserv ругается на самодельные скрипты в init.d

insserv: warning: script 'K01utm5_core' missing LSB tags and overrides
insserv: warning: script 'K01iptables_rules' missing LSB tags and overrides
insserv: warning: script 'iptables_rules' missing LSB tags and overrides
insserv: warning: script 'netup-payment-systems' missing LSB tags and overrides
insserv: warning: script 'utm5_core' missing LSB tags and overrides

нужно добавить в сквои скрипты примерно такую штуку

### BEGIN INIT INFO
# Provides:             iptables_rules

Скрипт выполняющий команду на dlink des-3526

Впринципе скрипт можно заточить под что угодно

#!/usr/bin/expect
 
if {[llength $argv] != 2} {
  puts "Вызов: dlink_command <ip_address_switch> <command>"
  puts "если команда состоит из нескольких слов, то её нужно заключить в кавычки"
  exit 1
}
set hostname [lindex $argv 0]
set COMMAND [lindex $argv 1]
set prompt "DES-3526:admin#"
set password ""
 
 
package require Expect
 
spawn telnet $hostname
expect username:
send admin\r
expect password:
send $password\r
expect -exact $prompt
send "$COMMAND\r"
expect -exact $prompt
send save\r
expect -exact $prompt

Генерация случайной строки на PHP

Скрипт генерирует пароль из 8 символов из заданного набора символов.

<?php
function generatePassword($length){
  $chars = 'abcdefghijklmnoprstuvwxyz1234567890';
  $numChars = strlen($chars);
  $string = '';
  for ($i = 0; $i < $length; $i++) {
    $string .= substr($chars, rand(1, $numChars) - 1, 1);
  }
  return $string;
}
?>

Код PHP на вывод:
<?php
  echo "Пароль: ".generatePassword(8);
  $password = generatePassword(8);
  echo "<input type='text' name='password' size='20' maxlength='40' value='".$password."'>";
?>

Архивирование таблиц базы UTM5

Скрипт выкусывает из базы UTM5 таблицы прошлого месяца и переносит их в архивную базу.
алгоритм работы можно проследить внутри скрипта, описывать не стану. Скрипт рабочий и работает на ура, позаимствован с форума netup.ru у одного из участников.
Запускаю его по крону 1-го числа каждого месяца. В итоге основная база UTM5 не бывает больше 1 гига и в ней хранятся отчеты только текущего месяца.

#!/usr/bin/perl
 
use DBI;
 
$db_host = 'localhost';  
$db_user = '';
$db_pass = '';
$db_name = 'UTM5';
$db_arc_name = 'UTM5arc';
 
$tbl_count = 7;

Шпаргалка по bash

[ -a FILE ] Правда елси FILE существует.
[ -b FILE ] Правда елси FILE существует и это специальный блоковый файл.
[ -c FILE ] Правда елси FILE существует и это специальный знаковый файл.
[ -d FILE ] Правда елси FILE существует и это директория.
[ -e FILE ] Правда елси FILE существует.
[ -f FILE ] Правда елси FILE существует и это регулярный файл.
[ -g FILE ] Правда елси FILE существует и установлен SGID бит.
[ -h FILE ] Правда елси FILE существует и это символический ссылка.
[ -k FILE ] Правда елси FILE существует и второй промежуточный бит округления установлен.

узнать pps на интерфейсе

if=eth1; while true; do VAR=`cat /proc/net/dev | grep "$if" | awk '{print $2+$10}'`; sleep 1; VAR2=`cat /proc/net/dev | grep "$if" | awk '{print $2+$10}'`; echo -ne "$(($VAR2-$VAR))\r"; done

скрипт запускающий программу

скрипт запускает программу если она не запущена, а если запущена то делает её окно активным

PROG=$1
#!/bin/bash
  if [ "`pgrep -u $USER $PROG`" != "" ]; then
    WID=`xdotool search --class "${PROG}" | tail -n 1`
    #xdotool windowfocus $WID
    wmctrl -a $PROG
    wmctrl -i -a $WID
  else
	`$PROG`
  fi
<code>

repair all mysql tables

mysql -Be "select concat('repair table ', TABLE_SCHEMA, '.', table_name, ';') from information_schema.tables where table_schema<>'information_schema';" | tail -n+2 | mysql

or

mysqlcheck --auto-repair -A

--auto-repair
If a checked table is corrupted, automatically fix it. Any necessary repairs are done after all tables have been checked.

-A
Check all tables in all databases.

Munin: Plugin to monitor the Seconds_Behind_Master on mysql slave

ln -s /path/to/script /etc/munin/plugins/
/etc/init.d/munin-node restart

#!/bin/sh
# 
# Plugin to monitor the Seconds_Behind_Master of replication on a mysql slave
#
# Parameters:
# 
#       configure
#       autoconf
#
# Configuration variables
#
#       mysqlopts     - Options to pass to mysql
#
#
#%# family=auto
#%# capabilities=autoconf
 
MYSQLOPTS="$mysqlopts"
MYSQL=${mysql:-mysql}
 
if [ "$1" = "autoconf" ]; then
        $MYSQL --version 2>/dev/null >/dev/null
        if [ $? -eq 0 ]
        then