Посты с тегом script
cppmm 21.02.2012 08:17

СкриптыВосстановление базы установленных пакетов в debian

Сегодня ночью немного попрактиковался в костылеписании из-за собственной невнимательности. Подумал, может быть тут тоже кому будет интересно.
Под катом скрипт для восстановления базы установленных пакетов dpkg в debian'е(и краткая история его появления).
Полностью.
+ 11 -
2
aleteya 05.08.2011 10:33

Скрипты на bashLinux + 2 ISP

Эта тема неоднократно обсасывалась на куче форумов, но всё же.
Часто бывает такая ситуация, что на работе есть два канала - основной и резервный. Основной всем хорош - и широкий, и стабильный, и как вообще. Но и второй канал тоже неплох и обидно, что пользуется только в экстренных случаях.
Полностью.
+ 7 -
28
mhspace 21.07.2011 22:56

Есть вопрос!Выполнить скрипт при появлении нового события в dmesg

Как?
+ 0 -
4
ananas 10.05.2011 21:57

СкриптыЗагрузка изображений в Picasaweb

Пробегал тут недавно обзор программ для просмотра изображений. Viewnior оказался тем, что нужно, так как умеет передавать изображения во внешние программы. Давно хотел подобную фичу к gpicview прикрутить, а тут уже все готово.

Теперь осталось приделать возможность отсылки фоток в вебальбом, и все будет полностью в шоколаде.
Полностью.
+ 7 -
18
Vcoder 27.04.2011 17:04

Я рекомендуюМешок банальных советов

Приличная подборка советов, касающихся работы в консоли и написания скриптов.

(Ахтунг! Ссылка на хабр! Я предупредил, если что.)
Полностью.
+ 4 -
24
IT.Tux.Droid 05.04.2011 20:12

СкриптыProstoScript для ProstoPleer’a.

prostoscript.py – умеет создавать плейлисты и/или полностью скачивать музыку из Ваших плейлистов на ProstoPleer’е и топа радиостанций ProstoPleer’а.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# coding: utf-8

######################################################
#                                                    #
#         ProstoScript для ProstoPleer'a =)          #
#   Code by IT.Tux.Droid <http://it-tux-droid.ru/>   #
#                                                    #
######################################################

import pycurl, StringIO, re, os, progressbar
from optparse import OptionParser

data = StringIO.StringIO()
curl = pycurl.Curl()
curl.setopt(pycurl.WRITEFUNCTION, data.write)

parser = OptionParser()
parser.add_option('-m', '--mode', dest='mode', metavar='MODE', default='0',
                  help='select mode: 0 - create playlist, 1 - download songs, 2 - create playlist and download songs')
parser.add_option('-u', '--url', dest='url', metavar='URL',
                  help='url to playlist or radio: http://prostopleer.com/#/top/msk/nasheradio')
(options, args) = parser.parse_args()

def progress(download_t, download_d, upload_t, upload_d):
        if (download_t != 0) and (download_d != download_t):
                bar.update((int(download_d)*100)/int(download_t))

def error(text):
        z = len(text.decode('utf-8'))
        print ' ????????????????'+'?'*z
        print ' ?       '+text+'       ?'
        print ' ????????????????'+'?'*z

def download_mp3(folder, song, url):
        global bar
        print '? '+song
        if not os.path.exists(folder):
                os.makedirs(folder)
        if not os.path.exists(folder+'/'+song+'.mp3'):
                bar = progressbar.ProgressBar(maxval=100, widgets=<'?   ?', progressbar.Bar(left='<', marker='=', right='>')>).start()
                data.truncate(0)
                curl.setopt(pycurl.URL, 'http://prostopleer.com/download/'+url)
                curl.setopt(curl.PROGRESSFUNCTION, progress)
                curl.setopt(curl.NOPROGRESS, 0)
                try:
                        curl.perform()
                except:
                        print '?   ?<connection error="error">'
                        return False
                bar.finish()
                mp3 = open(folder+'/'+song+'.mp3', 'w')
                mp3.write(data.getvalue())
                mp3.close()
        else:
                print '?   ?<you already="already" have="have" it="it">'

# Create .m3u playlist and/or download songs from your playlist.
# Example: "playlist('list346790Ntwn', 2)".
def playlist(p, m):
        data.truncate(0)
        curl.setopt(pycurl.URL,'http://prostopleer.com/'+p)
        curl.setopt(curl.NOPROGRESS, 1)
        try:
                curl.perform()
        except:
                error('Connection error!')
                return False

        list_name = re.findall("class=\"results\"&gt; &lt;h2&gt;(<^&lt;>*)&lt;/h2&gt;", data.getvalue())<0><20:-2>
        musics = re.findall("file_id=\"(<^\">*)\" track_id=\"(<^\">*)\" singer=\"(<^\">*)\" song=\"(<^\">*)\" link", data.getvalue())

        z = len(list_name.decode('utf-8'))

        if m in <0, 2>:
                m3u = open('playlist <'+list_name+'>.m3u', 'w')
                for music in musics:
                        m3u.write('#EXTINF: 0, '+music<2>+' - '+music<3>+'\nhttp://prostopleer.com/download/'+music<0>+'\n')
                m3u.close()
                print ' ?????????????????????????????????????????????????????'+'?'*z+'?'
                print ' ? Playlist from playlist ('+list_name+') was successfully created ?'
                print ' ?????????????????????????????????????????????????????'+'?'*z+'?'

        if m in <1, 2>:
                print ' ?????????????????????????????????????????????????????'+'?'*z+'?'
                print '??     Start download songs from your playlist ('+list_name+')     ?'
                print '??????????????????????????????????????????????????????'+'?'*z+'?'
                for music in musics:
                        download_mp3('playlist <'+list_name+'>', music<2>+' - '+music<3>, music<0>)
                print '??????????????????????????????????????????????????????'+'?'*z+'?'
                print '?? Songs from playlist ('+list_name+') was successfully downloaded ?'
                print ' ?????????????????????????????????????????????????????'+'?'*z+'?'

# Create .m3u playlist and/or download songs from radio.
# Example: "radio('top/msk/nasheradio', 2)".
def radio(r, f):
        data.truncate(0)
        curl.setopt(pycurl.URL,'http://prostopleer.com/'+r)
        curl.setopt(curl.NOPROGRESS, 1)
        try:
                curl.perform()
        except:
                error('Connection error!')
                return False

        radio_name = re.findall("radio-name\"&gt;(<^&lt;>*)&lt;/span&gt;", data.getvalue())<0>
        musics = re.findall("file_id=\"(<^\">*)\" singer=\"(<^\">*)\" song=\"(<^\">*)\" link", data.getvalue())

        z = len(radio_name.decode('utf-8'))

        if f in <0, 2>:
                m3u = open('radio <'+radio_name+'>.m3u', 'w')
                for music in musics:
                        m3u.write('#EXTINF: 0, '+music<1>+' - '+music<2>+'\nhttp://prostopleer.com/download/'+music<0>+'\n')
                m3u.close()
                print ' ?????????????????????????????????????????????????????'+'?'*z+'?'
                print ' ?  Playlist from radio ('+radio_name+') was successfully created   ?'
                print ' ?????????????????????????????????????????????????????'+'?'*z+'?'

        if f in <1, 2>:
                print ' ?????????????????????????????????????????????????????'+'?'*z+'?'
                print '??         Start download songs from radio ('+radio_name+')         ?'
                print '??????????????????????????????????????????????????????'+'?'*z+'?'
                for music in musics:
                        download_mp3('radio <'+radio_name+'>', music<1>+' - '+music<2>, music<0>)
                print '??????????????????????????????????????????????????????'+'?'*z+'?'
                print '??  Songs from radio ('+radio_name+') was successfully downloaded   ?'
                print ' ?????????????????????????????????????????????????????'+'?'*z+'?'

if options.mode in <'0', '1', '2'>:
        if options.url != None:
                u = re.findall('(list.*)', options.url)
                if u:
                        playlist(u<0>, int(options.mode))
                else:
                        u = re.findall('(top/.*)', options.url)
                        if u:
                                radio(u<0>, int(options.mode))
                        else:
                                error('Error URL!')
        else:
                error('Enter URL!')
else:
        error('Error MODE!')

curl.close()
</you></connection>

Зависимости: python, python-pycurl, python-progressbar.
$ sudo apt-get install python python-pycurl python-progressbar

PS: буду рад предложениям и замечаниям ;)
PPS: нет, 60 рублей в месяц совсем не много, но скрипт я все-же написал =)
Полностью.
+ 2 -
1
Sugar 30.06.2010 12:13

Linux Network AdministrationОткрытие портов на некоторое время

Доброго времени суток, welinux.ru
Работаю сисадмином в некоторой конторе, есть сетка, есть прокси-сервер, он же шлюз, на основе ОС GNU/Linux.
На сервачке всё как положено - весь инет идет через прокси (squid), файрвол настроен, все политики по умолчанию установлены в drop, нескольким машинам открыты нужные им порты. Всё вроде хорошо, маршрутизация настроена, пакетики бегают, юзеры довольны, но есть одно но...
Полностью.
+ 8 -
31
26.06.2010 09:44

cppmmНебольшой скриптик для стягивания музыки.

Нашёл тут сайт в местной локалке, где имеется довольно объёмная коллекция музыки. Но, скачивать можно только по одной песне. В общем, это не интересно. Полчаса времени и я родил скромный скриптик. Предупреждаю сразу, написан он на скорую руку и заточен под один определённый сайт(поэтому и пост у себя в персональном). Скрипт принимает на входе url страницы со списком альбомов группы, а на выходе выдаёт все песни этой группы, аккуратно разложенные по папочкам с названиями альбомов.
Суть подхода - качаем страницу со списком альбомов, потом парсим её парой костылей с конвеерами и скармливаем всё это wget'у.
Полностью.
+ 1 -
3
kirpichtion 15.05.2010 12:48

СкриптыСкрипт бэкапа (bash)

Публикую скрипт, которым я сохраняю свои проекты в несколько хранилищ одновременно.
Полностью.
+ 0 -
10
s2h 30.03.2010 17:56

СкриптыОсновы применения Python в администрировании Linux

Небольшая статья от IBM'овцев о том как применять Питон в системном администрировании Linux. Отличия от баша, работа со скриптами.
Полностью.
+ 2 -
6
1 2 3