Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » UNIX » UNIX Shell: sh, bash, zsh; Coreutils и ко.; sed, awk, perl;

Модерирует : ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 147 148 149 150 151 152 153

Открыть новую тему     Написать ответ в эту тему

digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Товарищи вопрошающие! Если ваша система отлична от ГНУ, и в то же время вы желаете обойтись только дефолтными средствами, указывайте и то и другое сразу, пожалуйста.


UNIX Shell

 
   Это глобальная тема по юниксовой командной оболочке, как по интерактивной работе в командной строке, так и по шелл-скриптам. Ключевые слова: sh, bash, zsh, tcsh, busybox, readline, coreutils, cp, mv, ln, rm, ls, readlink, mkdir, touch, stat, date, test, sleep, chown, chmod, chattr, dd, df, du, env, echo, cat, less, man, grep, sort, findutils, find, locate, xargs, md5sum, cmp, diff, patch, ps, kill, killall, tar, gzip, bzip2, xz, mount, fdisk, parted, mkfs, fsck, e2fsprogs, mtools, ss, netcat, netstat, rsync, ssh, scp, sftp, lftp, ncftp, time, strace.
   Неинтерактивная обработка текста (sed, awk, perl) пока тоже здесь.
   Смотри в других ветках: wget, convert, montage, mogrify и др., gs, git, 7z, p7zip, soffice, mplayer, mencoder, vlc, vim, mc, mcedit, kioclient.
 
 

Hint! Русские маны (подустаревшие, не всегда полные и не всегда для вашей системы) можно попытаться найти на Опеннете, к примеру: bash, tar, grep.

 
Готовые решения:
  • commandlinefu.com
    Крупнейшая база полезных однострочников на командной оболочке с ранжированием на основе пользовательского голосования.
     
  • shell-fu.org
    Аналогично, но поменьше и формат записей более свободный, поэтому встречаются и однострочники, и развернутые скрипты, и просто советы.
     
  • Useful one-line scripts for sed
    Почти исчерпывающий список решений для тех случаев, когда sed незаменим. Более сложные скрипты с sed.sf.net — только для тех, кто знает толк... :)

 
Учебная литература:
  • Greg’s Wiki (http://mywiki.wooledge.org)
    Наиболее обширный авторский сборник постоянно обновляющихся материалов по Башу.

    1. Bash Pitfalls
      (Частые ошибки программирования на Баше: [1], [2], [3], [4], [5] — пер. на русский по сост. на дек. 2008 г.).
      Рассмотрены преимущественно ошибки, возникающие из-за непонимания отличия шелла от «нормальных» скриптовых языков. Если вы уже владеете, например, Перлом, то это вполне может быть ваше первое руководство для ознакомления с Башем.
    2. Bash FAQ
    3. Bash Guide
    4. Bash Reference Sheet
      Шпаргалка по частым синтаксическим оборотам.

 
Классическая учебная литература:
С одной стороны не упомянуть эти издания нельзя, с другой — они настолько устарели, что едва ли их можно рекомендовать в роли учебника.

 

Смело правьте и дополняйте шапку, однако не забывайте отписываться об исправлениях и сохранять исходный вариант под #.
Первый пост темы имел вид...

Всего записей: 354 | Зарегистр. 19-04-2003 | Отправлено: 18:51 16-05-2008 | Исправлено: qw12, 09:42 24-03-2020
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
digital422
1 - химичить аккуратнее, особенно с правилами, касающимися вашего ssh порта...
2 - ping вам ни как не поможет... Вы же не полностью запрещаете все, а ошибаетесь только в каком-то конкретном правиле.

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 22:05 07-09-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
digital422
> Есть еще более разумные предложения?
«Еще»? ;-)
 
Вообще, в роли ожидаемого сигнала сброса может выступать только вручную установленный флаг (TXT запись на NS-сервере хорошо подходит, например); в особых случаях — невозможность состояние этого флага получить; доверять машине самостоятельно принимать подобные решение никак нельзя.
 
А в вашем случае обычно делают проще. При каждом редактировании цепочек помимо iptables-restore (или iptables, если вы по одному правилу редактируете, что хуже) выполняете еще и запись отложенного задания:
# iptables-restore < iptables.rules.new && at now + 3 minutes <<< '\iptables-restore < /etc/default/iptables'
; имеет смысл вообще переопределить iptables-restore через алиас (именно для этого отложенная команда начинается с экранирующей черты).
А в течение трех минут, если доступ не потерян, т.е. все ОК, просто отменяете сброс:
# atrm 1 # ну или не «1»
 
Странно что вы не нагуглили, задача очень распространенная.
 
P.S. /etc/default/iptables — файл, в которым вами заранее сохранена заведомо рабочая конфигурация. ;-)

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 23:36 07-09-2011 | Исправлено: ASE_DAG, 23:42 07-09-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
Думал через отложенную пятиминутку заморочиться, но когда начал писать это - решил что не мажорный вариант)))

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 23:59 07-09-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd
Э... Извините, не понял.

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 00:10 08-09-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
У? Вроде все просто сказал...
Вы через at предложили через 3 минуты возвращать все в норму, я когда писал свой пост думал закатать вариант с 5 минутной задержкой до восстановления, но когда начал писать пост передумал юзать такой вариант - как-то мой мозг не оценил его по достоинству.
 
Мне больше симпатизирует идея с внешним источником команд, хотя внутренний выглядит надёжнее, особенно при экспериментах с firewall'ом...

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 00:16 08-09-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd
> Вы через at предложили через 3 минуты возвращать все в норму
Да это, вроде-бы, многие так делают, не только я. Можно использовать не шелл + at, а что-нибудь специально для этого написанное, например (не пробовал, первая ссылка в гугле; Digital422, если хотите попробовать: $ hg clone http://infra-iptables.ivans-playground.googlecode.com/hg/ infra-iptables и мэйк+мэйкинсталл).

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 00:50 08-09-2011 | Исправлено: ASE_DAG, 00:51 08-09-2011
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Попробую перенести правила, относящиеся к ssh в начало скрипта. Есть подозрение в случае ошибки (в основном редактируются FORWARD таблицы) скрипт не доходит до OUTPUT, т.к. после ошибок ping до машины не доходит.
 
Вопрос 2.
Решил почистить базу с файлами, за 10 лет там набралось более 10000 файлов, часть из них уже не надо, часть надо оставить. Чтобы найти файлы по дате хочу вывести их в файл и по нему уже делать удаление.
1 вариант:

Код:
 
ls -lR --full-time $PATH_BASE | awk '{print $6,$9}' | sort -n  
 

все хорошо, но выводятся каталоги, они не нужны.
 
2 вариант:

Код:
 
find $PATH_BASE -type f -exec ls -lR --full-time {} \; | awk '{print $6,$9}'  
 

так выводится полный путь, а надо только имя файла и не сортирует.

Код:
 
find $PATH_BASE -type f -exec ls -lR --full-time {} \; | awk '{print $6,$9}' | sort -n  
 

так вообще ничего не выводит.

Всего записей: 354 | Зарегистр. 19-04-2003 | Отправлено: 14:53 08-09-2011 | Исправлено: digital422, 14:56 08-09-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SergeyKulikov
Вопрос

Цитата:
"<\?.*?\?>"  
это еще что за ужас?..
Цитата:
Ключ -regex меня почему-то не слушает или не понимает
find вообще во внутрь не смотрит это ключ тоже для имени...
 
А как вы вообще собрались grep'ать бинарный файл??? В общем могу предложить вам несколько вариантов:
1 - сказать grep'у работать с файлом пытаясь его в ASCII превратить - find /путь/uploads -type f -name '*.jpg' -exec egrep -ai 'pattern' {} \;
2 - глянуть на утилиту hexgrep (ни когда её не видел и не юзал)
3 - если хотите всё-таки искать 16-тиричные данные, то тогда так: find /путь/uploads -type f -name '*.jpg' -exec od -x {} \; | egrep -i '7b'
 
Добавлено:
digital422
Цитата:
Попробую перенести правила, относящиеся к ssh в начало скрипта. Есть подозрение в случае ошибки (в основном редактируются FORWARD таблицы) скрипт не доходит до OUTPUT, т.к. после ошибок ping до машины не доходит.  
что там у вас и как в скрипте я не знаю. Помните только, что порядок правил имеет значение!
 
По второму вопросу - :rofl:
find $PATH_BASE -type f -mtime +90 - выведет все файлы дата модификации которых старше 90дней
 
Что бы ls вывел только файлы надо примерно такое: ls -l ~/ | awk '/^-/{print $NF}'

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 15:26 08-09-2011 | Исправлено: Alukardd, 15:27 08-09-2011
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот так нормально, что и требовалось:

Код:
 
ls -lR --full-time $PATH_BASE | awk '/^-/{print $6,$9}' | sort -n
 

Всего записей: 354 | Зарегистр. 19-04-2003 | Отправлено: 15:56 08-09-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
digital422
зачем вам секунды и миллисекунды (--full-time)??? long format у ls и так показывает дату и время модификации, к тому же вы взяли только дату без времени ($6)...
 
ИМХО, если вы потом после сортировки собрались удалять основываясь на дате, так проще сразу отобрать старше чего-то (find -mtime)...

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 16:05 08-09-2011
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2005-08-30 rolik-7.avi - мне так достаточно, чтобы понять дату создания. А как сделать чтобы в данном скрипте был виндовый перенос строк?

Всего записей: 354 | Зарегистр. 19-04-2003 | Отправлено: 16:08 08-09-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
digital422
надеюсь вы избавились от ненужного вам ключа (--full-time)
ls -lR $PATH_BASE | awk -v ORS="\r\n" '/^-/{print $6,$8}' | sort -n

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 16:31 08-09-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
digital422
Парсить вывод ls — извращение. Читайте в man find описание ключа -printf.
 
> в данном скрипте был виндовый перенос строк?
... awk -v ORS='\r\n' ..., не? А зачем вам это?
 
 
Добавлено:
SergeyKulikov

Цитата:
Задача:
1) В папке uploads найти все файлы с расширением jpg
2) В найденных файлах из пункта 1) найти все вхождения: <? любой код ?>
3) Вывести на экран название файлов с путями, где были найдены вхождения из пункта 2)
 
Вот тут пример, какие вхождения должно находить: http://regexr.com?2uklt
 
Пробовал так:
1) find /путь/uploads -name "*.jpg" | xargs grep -Eoi "<\?.*?\?>"
 
Но я не знаю, как egrep-у дать понять, чтобы он искал не только: <? что-то ?> но также, чтобы искал и:
<?
что-то
?>

 
То-есть я не знаю, как ему передать ключики gs
 
2) find /путь/uploads -name "*.jpg" | xargs perl -pe "m|<\?.*?\?>|gis"
 
В этом примере тоже что-то не так сработало. Ключик -p просто выводит на экран все, где был поиск.
Без ключа -p вообще никогда ничего не выводит :( Очень надеялся на этот способ. Всё-таки напрямую через perl делается поиск.
 
Очень прошу! Помогите решить эту проблему.

 
Ну если отвлечься от того, что вы собрались грепать бинарный файл, то find здесь и не нужен:
$ grep 'pattern' -R ~/uploads/ --include='*.jpg'
 
Теперь о паттерне. <\?.*?\?> — верно, здесь нужна нежадная квантификация, но grep -E ее не умеет, нужен grep -P.
 
А теперь, собственно, объясните, что вам таки нужно, что вам потребовалось грепать жипеги.

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 16:33 08-09-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
Цитата:
find описание ключа -printf
забываю я вечно об этом printf в любом его представлении...
Цитата:
grep -E ее не умеет
всегда можно обмануть и исключить границы шаблона из жадного шаблона...
Цитата:
Ну если отвлечься от того, что вы собрались грепать бинарный файл
ключил -a всё же добавить стоит иначе совсем печаль...


----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 17:02 08-09-2011 | Исправлено: Alukardd, 17:03 08-09-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd
> всегда можно обмануть и исключить границы шаблона из жадного шаблона...
Ну «всегда» — это вы, конечно, замахнулись. Да и в данном случае, пока не узнаем стоящую задачу, сказать можно или нет не представляется возможным.
 
SergeyKulikov
> Но я не знаю, как egrep-у дать понять, чтобы он искал не только: <? что-то ?>, но также, чтобы искал и:
> <?
> что-то
> ?>
А вот это, афайк, никак. Нету у ГНУ Грепа опции, переопределяющей RS.

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 17:09 08-09-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
Цитата:
А вот это, афайк, никак. Нету у ГНУ Грепа опции, переопределяющей RS.
всегда можно сделать через тот же awk. Ну или более по человечески: | tr -d '\n'

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 17:16 08-09-2011
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG - спасибо за совет.
find $PATH_BASE -type f -printf "%TY-%Tm-%Td \t %TH:%TM \t\t %f \n" | sort

Цитата:
А зачем вам это?

Человек, который будет делать чистку использует блокнот винды, чтобы txt файл открылся читаемо хочу поставить символы ^M, не спорю-можно открыть и Wordpadом. В любом случае в свою копилку положил этот пример.

Всего записей: 354 | Зарегистр. 19-04-2003 | Отправлено: 19:36 08-09-2011 | Исправлено: digital422, 19:36 08-09-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
digital422
Цитата:
не спорю-можно открыть и Wordpadом
я открою вам глаза, на замечательнейшую программу, даже две - на ваш выбор:
1 - notepad++
2 - gvim - я не мог его обойти

Цитата:
%f \n"
эм... так сразу поставьте в printf \r\n...

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 19:47 08-09-2011
SergeyKulikov



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Alukardd, это еще что за ужас?..
Это называется регулярные выражения. Можете почитать в Википедии.
Можно было бы вместо <\?.*?\?> написать так: <\?[^>]*\?>
Оба варианта будут делать одно и тоже.
 

Цитата:
Alukardd, а как вы вообще собрались grep'ать бинарный файл???
А какая собственно разница? Я ищу любые вхождения <? что-то ?>
Можете открыть любой jpg файл и прописать в нем в самом конце код <?php echo "что-то"; ?> и этот код не будет бинарным. И именно его мне надо находить.
 

Цитата:
Alukardd, 1 - сказать grep'у работать с файлом пытаясь его в ASCII превратить
Зачем это делать?
 
Alukardd, в Ваших примерах я не понял, где именно происходит многострочный поиск, а именно как было бы с ключём s
 
 

Цитата:
ASE_DAG, но grep -E ее не умеет, нужен grep -P.
к сожалнию в FreeBSD ключ -P не поддерживается. Это указано в man к grep
 

Цитата:
ASE_DAG, а теперь, собственно, объясните, что вам таки нужно, что вам потребовалось грепать жипеги.
Я уже много лет занимаюсь разработкой сайтов и часто мои клиенты пишут, что их сайты взламывают и просят меня почистить сайт от вирусни.
Когда я начинаю делать поиск, то часто нахожу код php шелов в файлах любых расширений.
Пользователь загружает аватарку на сайт, а в аватарке в любом месте картинки прописан php код.
Остаётся лишь подинклюдить эту картинку в исполняемый php файл и можно юзать код из этой картинки. Моя задача находить подобные картинки и удалять их. Файлов на больших сайтах обычно около 200 000 и больше и вручную не очень хочется делать такой поиск.
 
 
 
 
Подобный скрипт можно написать на php и будет отлично работать, вот пример:

Код:
 
<?php
// Открываемый файл.
$file = "test.sql";
 
// Открываем файл в режиме только чтения.
$fopen = fopen ( $file, "r" ) or die ( "Не могу открыть файл" );
 
// Читаем открытый файл.
$fread = fread ( $fopen, filesize ( $file ) );
 
// Закрываем файл
fclose ( $fopen );
 
// Ищем
$result = preg_match_all ( "|<\?.*?\?>|smi", $fread, $result2 );
 
 
 
 
echo "Найдено вхождений: " . $result;
 
echo "\n\n<pre>\n";
print_r ($result2);
echo "</pre>";
?>
 

 
НО у php тоже будет несколько ограничений, например, preg_match_all будет выдавать ошибку, если будет больше 100 000 символов. Для этого надо будет заходить в php.ini и править раздел связанный с PCRE, а также для php надо будет выделять огромное количество оперативной памяти.
Ведь файлы могут весить 2 и более Гб.
 
 

Цитата:
ASE_DAG, а вот это, афайк, никак. Нету у ГНУ Грепа опции, переопределяющей RS.
Это я кажется уже понял
Мне нужна возможность, которую бы давал ключ s
 
 
 
 
 
 
 
Ребята, иногда стоит задача сделать бэкап базы данных MySQL весом 1-2 гб и произвести поиск и замену.

Всего записей: 24 | Зарегистр. 09-02-2011 | Отправлено: 20:46 08-09-2011 | Исправлено: SergeyKulikov, 20:56 08-09-2011
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SergeyKulikov
Цитата:
Можно было бы вместо <\?.*?\?> написать так: <\?[^>]*\?>
Ни когда не использовал ленивые квантификаторы, поэтому мне знаком только 2-ой вариант. Теперь учту и извращения с ? и +.
 
По поводу многострочности вроде уже все уяснили, что gnu grep такого не могёт... Чем вам его заменить  - я хз. По прежнему как костыль должно работать следующее:
Код:
for file in `find /путь/uploads -type f -name '*.jpg'`; do cat "$file" | tr -d '\r\n' | egrep -qa '<\?[^>]*\?>'; if [ $? -eq 0 ]; then echo "$file"; fi done
Выведет имена файлов в которых найдено совпадение.
Костыли - наше всё.

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 21:32 08-09-2011 | Исправлено: Alukardd, 21:33 08-09-2011
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 147 148 149 150 151 152 153

Компьютерный форум Ru.Board » Операционные системы » UNIX » UNIX Shell: sh, bash, zsh; Coreutils и ко.; sed, awk, perl;


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru