LINUX.ORG.RU

Сообщения AnonymUser

 

Настройка Boot logo (Кастомизация)

Форум — General

У многих Boot logo (пингвины, показывающие количество потоков или ядер) не работает из коробки. В связи с этим небольшая памятка.

  1. В /boot/grub/grub.cfg в стоке linux предлагается убрать слово quiet (рядом со splash).
  2. В ядре (.config) отключить (закомментировать) #CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y Поставить is not set
  3. Включить boot logo в ядре: Device Drivers->Graphics->Boot logo (то, которое 224)
  4. Включить в ядре поддержку Framebuffer (вариативно, от системы)
  5. Поставить в grub.cfg нужный режим, например, vga=0x317 для 1024х768 (можно разными способами сделать).

Кастомизация (создание своего) Boot logo

  1. Заходим в /usr/src/linux/drivers/video/logo
  2. Удалим файлы: logo_linux_clut224.c и logo_linux_clut224.o (они генерируются при компиляции ядра)
  3. Отредактируем файл logo_linux_clut224.ppm в редакторе gimp по своему вкусу.
  4. Установим пакет netpbm
  5. Отредактируем количество цветов программой: ppmquant

ppmquant 224 logo_linux_clut224.ppm > logo_linux_clut224.ppm

  1. Переведем в ASCII формат Лого: pnmnoraw logo_linux_clut224.ppm > logo_linux_clut224.ppm

Для конвертации можно использовать промежуточный файл, предварительно переименовав logo_linux_clut224.ppm.

Логотип готов. Осталось перекомпилировать ядро.

P.S. Кстомизированное мной Boot Logo: https://disk.yandex.ru/i/jauzt48_ydk1zg

Пример: https://ibb.co/PcfVgD7

 ,

AnonymUser
()

Планшет Lenovo miix 3-1030 и Linux

Форум — Linux-install

Странная история. На планшете Win 8. Линукс загрузить не получается. Только Убунту версии 15 с uefi32. Но сегодня я скачал минимальный диск Gentoo 64b. Заменил в не Efi/boot файл efi32 и получилось загрузиться.

Этот файл взял из темы на форуме, про установку Убунту. Странно, что ефи32 грузит 64 битную версию.

Update: Получилось поставить Calculate Linux на планшет. Далее о том, как ставил кратко:

  1. Записал систему (64bit) на flas-usb, использовал разметку gpt, использовал программу rfus.4-4.
  2. Загрузился (загрузка с flash через fn-f12, чтобы попасть в выбор устройств загрузки) и поставил систему. Разметку диска ставил автоматическую, три раздела: swap, / и uefi. Uefi обязательно.
  3. Далее раздел uefi надо подмонтировать в /boot/efi. Там создать директорию boot и положить туда bootia32.efi по ссылке ниже.
  4. Загрузиться с диска. Должна появиться строка grub.
  5. Загрузиться в установленную систему вручную прописав в строку grub тоже, что и в grub.cfg: (Поправить fstab, названия разделов)

insmod gzio

insmod part_gpt

insmod btrfs ls

set root=(раздел с корнем, у меня был hd0,gpt2)

linux /booot/vmlinuz-номер-ядра root=/dev/mmcblk1p2

(диски могут быть с другими номерами, не как в fstab, если флешка была вынута)

initrd /boot/initramfs-номер

boot (грузимся)

  1. После загрузки требуется переустановить grub для efi-32: grub-install –target=i386-efi /dev/mmcblk1p2 –efi-directory=/boot/efi –boot-directory=/boot

  2. Сконфигурировать grub: grub-mkconfig -o /boot/grub/grub.cfg

Система должна работать. На моём планшете корректно работает тачскрин, вай-фай и прочее.

 

AnonymUser
()

«Операционная система» Русь

Форум — Talks

https://www.youtube.com/watch?v=9Jmo4FMiNg0

Интерено: два человека, судя по комментариям, увидели в консоли слово php и решили, что селектор написан на php. Разочарую. Исходник: https://gitflic.ru/project/dcc0/mix-c-89-php/blob?file=rusos_shutka.c

 

AnonymUser
()

Транспонирование календаря в Conky, выделение праздников и текущая дата

Форум — Desktop

Доброго всем! Тема сама за себя говорит.

Вертикальный вывод и выделение праздников:

${execp cal -v -n 1 | head -n6 | sed "s/`date +%e` \|`date +%e`$/\$\{color green\}&\$\{color grey\}/" }
${execp cal -v  -n 2 | tail -n2 | sed 's/[Сб|Вс|0-9]/\$\{color purple\}&\$\{color grey\}/g'}

Update: Вариант номер 2 горизонтальный вывод календаря в conky с подстветкой текущей даты и выходных дней.

В .conkyrc

${execp cat /tmp/cal.txt | sed  -e 's/-/\$\{color purple\}/g' -e  's/+/\$\{color grey\}/g'   -e "s/ `date +%e`\|`date +%e` \|`date +%e`\+$/\$\{color green\}&\$\{color grey\}/" -e  's/:/\$\{color purple\}/g' }

И при старте или планировщиком cron выполнить скрипт 1 раз в сутки. Сам скрипт: calendar.sh


#Обработка строк календаря в Linux (программа cal) для раскрашивания выходных дней и текущей даты
#Выходные и текущая выделяются цветом в файле .conkyrc
cal > /tmp/cal.txt

#  Обработка строки 2  #
part2=`cal | sed -n '2p'`; printf "${part2: -5}" > /tmp/cal2.txt
source=`cat /tmp/cal2.txt`
sed -i 's/'"$source"'/\'$'-&+/g'  /tmp/cal.txt
####################################################

###Обработка строки 3####
part2=`cal | sed -n '3p'`; printf "${part2: -5}" > /tmp/cal2.txt
source=`cat /tmp/cal2.txt`
sed -i 's/'"$source"'/\'$'-&+/g'  /tmp/cal.txt
#Меняем последнее число в строке, чтобы выделить воскресенье
part2=`cat /tmp/cal.txt | sed -n '3p'`; printf "${part2: -3}" > /tmp/cal2-1.txt
source=`cat /tmp/cal2-1.txt`
if [[ $source =~ [0-9+]+$ ]]; then
sed  's/'"$source"'/\'$': &/g'  -i /tmp/cal.txt
fi
###################################################



#  Обработка строки 4  #
part2=`cal | sed -n '4p'`; printf "${part2: -5}" > /tmp/cal2.txt
source=`cat /tmp/cal2.txt`
sed -i 's/'"$source"'/\'$'-&+/g'  /tmp/cal.txt
#
part2=`cat /tmp/cal.txt | sed -n '4p'`; printf "${part2: -3}" > /tmp/cal2.txt
source=`cat /tmp/cal2.txt`
if [[ $source =~ [0-9+]+$ ]]; then
sed  's/'"$source"'/\'$': &/g'  -i /tmp/cal.txt
fi
###################################################



#  Обработка строки 5  #
part2=`cal | sed -n '5p'`; printf "${part2: -5}" > /tmp/cal2.txt
source=`cat /tmp/cal2.txt`
sed -i 's/'"$source"'/\'$'-&+/g'  /tmp/cal.txt
#
part2=`cat /tmp/cal.txt | sed -n '5p'`; printf "${part2: -3}" > /tmp/cal2.txt
source=`cat /tmp/cal2.txt`
if [[ $source =~ [0-9+] ]]; then
sed  's/'"$source"'/\'$': &/g'  -i /tmp/cal.txt
fi
###################################################

#  Обработка строки 6  #
part2=`cal | sed -n '6p'`; printf "${part2: -5}" > /tmp/cal2.txt
source=`cat /tmp/cal2.txt`
sed -i 's/'"$source"'/\'$'-&+/g'  /tmp/cal.txt
#
part2=`cat /tmp/cal.txt | sed -n '6p'`; printf "${part2: -3}" > /tmp/cal2.txt
source=`cat /tmp/cal2.txt`
if [[ $source =~ [0-9+] ]]; then
sed  's/'"$source"'/\'$': &/g'  -i /tmp/cal.txt
fi
###################################################

#  Обработка строки 7  #
part2=`cal | sed -n '7p'`; printf "${part2: -6}" > /tmp/cal7-1.txt
source=`cat /tmp/cal7-1.txt`
if [[ $source =~ [0-9+] ]]; then
sed -i 's/'"$source"'/\'$'-&+/g'  /tmp/cal.txt
echo ok
fi
#
part2=`cat /tmp/cal.txt | sed -n '7p'`; printf "${part2: -3}" > /tmp/cal7-2.txt
source=`cat /tmp/cal7-2.txt`
if [[ $source =~ [0-9+] ]]; then
sed  's/'"$source"'/\'$': &/g'  -i /tmp/cal.txt
fi
###################################################

#  Обработка строки 8  #
part2=`cal | sed -n '8p'`; printf "${part2: -5}" > /tmp/cal8-1.txt
source=`cat /tmp/cal8-1.txt`
if [[ $source =~ [0-9+]+$ ]]; then
sed -i 's/'"$source"'/\'$'-&+/g'  /tmp/cal.txt
fi
#
part2=`cat /tmp/cal.txt | sed -n '8p'`; printf "${part2: -3}" > /tmp/cal8-2.txt
source=`cat /tmp/cal8-2.txt`
if [[ $source =~ [0-9+]+$ ]]; then
sed  's/'"$source"'/\'$': &/g'  -i /tmp/cal.txt
fi



Post Scriptum

Варианту проще и лучше будем рады.

Update:

Вариант обработки календаря на php:

https://gitflic.ru/project/dcc0/mix-c-89-php/blob?file=calendar.php

 , ,

AnonymUser
()

Разработка системы выключения или перезарузки без sudo во Fluxbox [не рекомендуется]

Форум — Desktop

Придумал (может быть, я не первый) такой способ выключения и перезагрузки с использованием cron, без sudo:

https://studio.youtube.com/video/0VsXXP5t80I/

  1. Пользователь сохраняет в домашней директории файл с управляющим символом, используя для этого скрипт или просто команду, например:

echo 1 > shutdown.txt

  1. Cron от пользователя root выполняет свой скрипт и читает файл пользователя, выполняет выключение или перезагрузку.

*Примерная реализация

crontab -e: */1 * * * * sh /root/shutdown_1.sh

В /root/shutdown_1.sh

Как написали ниже, у такого способа имеется уязвимость:

SHUTDOWN_COMP=`md5sum /home/user/shutdown.txt | grep -o 1`; 
if [  "$SHUTDOWN_COMP" = "b026324c" ]
then
echo 0 > /home/user/shutdown.txt & SHUTDOWN_COMP="0" & /sbin/poweroff; 
fi

Update

Скрипт от root меняется на такой:

SHUTDOWN_COMP=`grep -o 098 /home/user/shutdown.txt`; 
if [  "$SHUTDOWN_COMP" = "098" ]
then
/sbin/poweroff; 
fi

Пользовательский (не root) cron после перезагрузки меняет состояние файла /home/user/shutdown.txt или удаляет его. То есть, crontab -e:

@reboot echo 0 > /home/user/shutdown.txt

Post Scriptum

Пробую. Пока работает корректно.


  •                                               *
    

Update *

  •                                               *
    

Последнее обновление. Финальное. *

  •                                               *
    

Система перезагрузки и выключения без sudo *

  •                                               *
    
  •                                               *
    

Прислушался к советам в комментариях и пока получилась такая система: 1) две программы на языке C. Обе работают через cron. Первая проверяет наличие файла /run/shudown.txt только при старте системы. Если его нет, то создаёт его. Проверерку, вероятно, можно удалить.

Запись в cron:

@reboot  /usr/local/bin/check

Файл: check.c

#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
int main ()
{

    FILE *file;
/*Проверим сущестование файла: если нет, то создадим,
установим права и владельца.*/
    if  (fopen("/run/shutdown.txt", "r") == NULL) {
    creat("/run/shutdown.txt",  0644);
    chown("/run/shutdown.txt", 1000, 0);
    return 0;
}}

Вторая программа для проверки управляющих символов. Запись в cron:

*/1 * * * * /usr/local/bin/shutdownreboot

Второй файл: shutdownreboot.c

#include <stdio.h>
#include <stdlib.h>
int main ()

{
    char c;
    FILE *file;
/*Откроем файл, прочитаем управляющий символ, перезагрузим или  выключим.*/
    file = fopen("/run/shutdown.txt", "r");
    c = getc (file);
    if (c == '4') 
    system("/sbin/reboot");
    if (c == '2')
    system("/sbin/poweroff");
    fclose(file);
}

И два пользовательских скрипта (кнопки), содержащих команды для записи в /run/shutdown.txt:

echo 4 > /run/shutdown.txt

и

echo 2 > /run/shutdown.txt

P.S. Код на git: https://gitflic.ru/project/dcc0/system-reboot-control

Решил сделать статью на habr: https://habr.com/ru/post/703924/

 , , , без sudo,

AnonymUser
()

Результаты компиляции на нетбуке (Atom). Gentoo и Calculate Linux

Форум — General

Решил поделиться результатами компиляции разных программ на нетбуке. Машина: hp mini. Модель примерно 2009-2012 годов. Процессор: Atom N570, 1.6GZ, 2 ядра, 4 потока. Память: DDR3, 2GB. Swap 4Gb. (Разметил для swap 12 gb, показывает только 4). Система Calculate Linux 64bit. Установлены опции компиляции: -fomit-frame-pointer, -march-native, -j5, -msse, -msse2, -msse3, -mmmx, -pipe, -O2. Также -j5, –load-average=5. CCACHE_SIZE=«5G» Результаты

  1. Собрал ядро Gentoo. Затрачено времени 14 часов.
  2. Собрал браузер Seamonkey. Затрачено времени 16 часов.
  3. Не смог скомпилировать свежий FireFox. Время ожидания: трое суток. Ушёл в Swap.
  4. Пытался скомпилировать webkit-gtk. Время ожидания 10 часов. Ушёл в swap.

Добавление

  1. Собрал glibc примерно за 2 часа с небольшим.

Выводы. Видимо, можно не пытаться скомпилировать на этой машине Chrome, LibreOffice и ещё некоторые программы. Можно собрать Gentoo, но с очень лёгким De или вообще без него. Итог: самостоятельная компиляция на Atom возможна, но со многими ограничениями. Иначе нецелесообразно.

Post Scriptum

Данная тема создана для тех, кто вдруг захочет установить Gentoo на нетбук с Atom. В общем, я не рекомендую компилировать. Хотя установить Calculate Linux и собрать ядро Gentoo всё же возможно. В общем и Gentoo можно собрать, но если заранее ограничить себя небольшим спектром программам. Вопрос обновлений не рассматриваю.

Обновление

Всё-таки установил Gentoо по хендбуку. Установил без De. Из программ только: links, weechat, mc.

  1. Затраченное время (на всё): 1 сутки.

a) Удалось сократить время установки, благодаря автоматическому конфигурированию wifi (nmtui) с Livecd.

b) Сократил время, воспользовавшись предварительно Gparted с диска Calculate Linux.

c) Ядро gentoo и config предварительно сохранил после компиляции в Calculate. Правда, пришлось перекомпилировать модули.

Но в целом успешно. Помучился с русификацией консоли, не сразу нашёл какую keymap выставить. Всем спасибо.

Ещё добавления 7) Собрал Xorg-server. Затрачено времени: начал в понедельник завершил в четверг. Попутно собраны: mysql, PHP, lighttpd, rust, библиотеки c++, irssi, mcabber, fluxbox. Собрал gcc с поддержкой graphite.

Для истории фото: https://ibb.co/m65P5hd

Видео процессом загрузки Gentoo Linux на нетбуке HP mini: https://youtu.be/s6ubLc6zawU

 , , , ,

AnonymUser
()

Интесресное свойство BASH. Модель Rust + Bash.

Форум — Development

Интересное свойство bash/shell открыл для себя. Решил попытаться вникнуть в язык Rust. Для примера взял старый, измученный мной, алгоритм перебора перестановок Нараяны. Переписал его и уткнулся в то, что не так легко и элегантно новичку найти способ перевести аргумент командной строки в число. В C89 с приведением типов как-то просто. Искал варианты: все те, что нашёл, относительно синтаксиса и на мой субъективный взгляд, показались трудными для восприятия. Вдруг осенило меня, - можно же использовать в качестве инициализирующего скрипта bash. И появилась такая модель:

  1. Перебор перестановок на Rust с самым простым синтаксисом: данные пользователя хранятся в векторах, в самом скрипте.
  2. Стартовый скрипт на Bash создаёт копию основной программы, забирает аргументы командной строки, создаёт новые векторы и перезаписывает их в основной программе с помощью sed. Безопасно и просто. Результат: https://github.com/dcc0/permutations_rust

 ,

AnonymUser
()

OpenChat

Форум — Development

Может быть, кому-нибудь пригодится. Написал когда-то - уже давно - простой чат открытого типа. Нигде не анонсировал. Может пригодится в локальных сетях, так как нет регистрации пользователя - принцип irc. Можно создавать каналы, зная пароль администратора. Чат очень простой. Сообщения хранятся в БД, выводятся с помощью ajax и хрянятся только у клиента, что сильно снижает нагрузку. В основном чат написан на PHP (OOP, Модель, похожая на MVC). Довольно прост в обращении. Есть возможность добавлять изображения, ссылки в чат и оформлять текст собственным кодом. Полное описание есть на гитхаб.

Ссылка на исходники: https://github.com/dcc0/OpenChatPhp

Посмотреть работу чата можно здесь: http://comb.org.ru/chat/index.php

 , ,

AnonymUser
()

Найден открытый сервер Ultima Onine на PHP 7

Форум — Games

 

AnonymUser
()

Ищу браузерки. Типа combats.com

Форум — Games

Ищу, что-нибудь текстовое по большей части. С чатом. Что-то вроде олдбк, комбатс, карнаж, арена и т.д.

Можно что-то кустарное и минимум коммерциолизированное. Желательно с нормальной достаточно взрослой аудиторией, для которой игра лишь средство общения преимущественно, но не чистые текстовые игры типа форумных.

 

AnonymUser
()

Сравнение строк, содержащих числа (только цифры). Критика

Форум — Development

Критика нужна: желательно объективно и без перехода на личности.

Отредактировано с учетом комментариев ниже! Еще раз отредактировано с учетом комментариев ниже! Спасибо всем за помощь, друзья!

C проверкой на знак - отрицания. Посл. вариант: True

/*Данная программа сравнивает две строки, содержащие числа (только).
Возвращает A > B,  A < B или A = B, коды 1, -1 и 0. Ответ 3 - неправильный ввод 
или отсутствие аргументов.
This program compares two strings, which contains numbers (only).
It returns: A > B,  A < B or A = B, codes 1, -1 and 0. Code 3 - incorrect or empty input.
*/


#include <stdio.h>

  /*Функция печати результата*/
  int ret(int r) {

/*Если нужен код ответа (например, для PHP), раскомментируйте строку ниже*/
    //printf("%d", r);

  /*Коды  ответов и вывод на экран сообщений*/
 switch ( r ) {
        case 1:
            printf("A > B\n");
            break;
        case -1:
            printf("A < B\n");
            break;
        case 0:
            printf("A = B\n");
            break;
        case 3:
             printf("Перезапустите с двумя аргументами так: программа 123 321\n");
            break;
    }

    return r;
  }

//Функция конвертации аргумента в целое
int convert_to_int(char * ar1, int i) {

  int a = 0;

  for (i; ar1[i]; i++) a = a * 10 + (ar1[i] - '0');

  return a;
}

int main(int argc, char * argv[]) {

  /*Проверим ввод аргументов*/
  if (argc != 3)   return ret(3);

  /*Проверим знаки - если один с минусом, другой нет (и обратно)*/
  if (argv[1][0] == '-' && argv[2][0] != '-') return ret(-1);
  if (argv[2][0] == '-' && argv[1][0] != '-') return ret(1);

  int i = 0;

  /*Если оба аргумента без знаков минус. Достаточно проверить один*/
  if (argv[1][0] != '-') {
    if (convert_to_int(argv[1], 0) > convert_to_int(argv[2], 0)) return ret(1);
    if (convert_to_int(argv[1], 0) < convert_to_int(argv[2], 0)) return ret(-1);
  }
  /*Если с минусами*/
  else {
    if (convert_to_int(argv[1], 1) > convert_to_int(argv[2], 1)) return ret(-1);
    if (convert_to_int(argv[1], 1) < convert_to_int(argv[2], 1)) return ret(1);
  }
  /*Если равны*/
  return ret(0);
}


 

AnonymUser
()

Дописал я программу. Называется квантитативный эксплорер

Форум — Development

Quantitative Explorer. Или квантитативная машина. Работает так: 1) Вводим слово в файл words.txt 2) Запускаем.

Получаем

1) Транслитерацию на eng, только нижний регистр пока. 2) Число всех уникальных символов и исходных. 3) Диалог с предложением перемешать полученный результат. Если да, то все перестановки результата.

Все самописное, никаких библиотек, исходники в катталоге source. Транслитерация на stdio, используется одна строка для каждого символа. Связует все сопрограммы великий bash.

Архив: https://yadi.sk/d/kVu8nbAC3VSVnF

 

AnonymUser
()

Программа: удаление всех повторяющийхся цифр (и букв в слове). С [в доработке]

Форум — Development

Упражнялся вчера с С и решил что-нибудь более или менее полезное написать для работы со строками символами, с исп. stdio. И вот такое получилось. Принимает один аргумент: Зачем может быть нужна?! Когда тебе твоя девушка пишет все время вот так: «даааааа, вооооот» = ) (но пока удаляет только ASCII - цифры и лат. алфавит. Только из слов без кавычек) и вообще делает символы в слове уникальными, типа на входе «good», на выходе «god» или на входе «pool», на выходе «pol»

Тема отредактирована. См. комментарии ниже. Решение внизу

//This small prorgam removes all duplicated characters out of a word
//Программа удаляет все повторяющиеся символы из слова
//Author dcc0@yandex.ru 2018.

#include <stdio.h>
int main(int argc, char* argv[]) {
  //here we check arguments//проверяем аргументы
  if (argc < 2) {
    printf("Argument must be a word:\n");
    return 0;
  }

  int x, i, j;
  //it calculates an array's length
  //вычисляем длину слова и печатаем
  for (x = 0; argv[1][x] != '\0'; x++);
  printf ("Original length: %d\n", x);
  x=x+1;
  //here we search twins
  //ищем одинаковых
  for (i = 0; i != x; i++) {
    j = i + 1;
    while (j != x) {
      if (argv[1][i] == argv[1][j]) {
        argv[1][i] = '0';
      }
      j++;
    }
  }
j=0;
  //Output
  //Вывод
  for (i = 0; i != x; i++) {
    if (argv[1][i] != '0') {
      printf ("%c", argv[1][i]);
      j++;
    }
  }
  printf ("\nNumber of uniqe symbols: %d\n", j-1);
}

P.S. Форматирование поправил. Лишний блок из кода убрал. Комментарии на русском есть. P.P.S Ну вот еще подсократилось. «Динамическое вычисление длины массива убрали. В принципе можно и вычисление x убрать.

P.P.P.S Теперь и такую строку вроде правильно обрабатывает: „teeest teeestt tteeessstt“ Original length: 25 est Number of uniqe symbols: 4 Осталось сделать транслит функцию.

 ,

AnonymUser
()

Голосовое оповещение о поче (скрипт)

Форум — Desktop

Есть такой скрипт, проверяет новые сообщения на Яндексе и голосом оповещает о новых, работает с cron. Вопросов два: Этично ли дергать через cron, например, раз в 10 минут Яндекс? Второй вопрос, есть ли в скрипте ошибки, недоработки? Или в принципе такой скрипт права на существование не имеет?

#!/bin/bash
var_file=/var/tmp_file
/usr/bin/curl -D headers_and_cookies -d 'MainLogin&from=passport&idkey=31c1365723231ce2p2ZkbO&display=page&login=user@yandex.ru&passwd=ПАРОЛЬ' -L  https://passport.yandex.ru/passport?mode=auth;

notify () {
 if [ $maill -eq 1 ]; then
  echo "You have $maill incoming message in Yandex inbox" | festival --tts
   echo "$maill" > $var_file
fi
  
 if [ $maill -gt 1 ]; then
  echo "You have $maill incoming messages in Yandex inbox" | festival --tts
   echo "$maill" > $var_file
fi
}


test_mail() {

 if [ "$maill" -ge "1" -a "$maill" -gt "$cattt" ]; then
 notify
fi
  
 if [ "$maill" -lt "$cattt" ]; then
  echo "0" > $var_file
   notify
fi
}


init_test () {
 if [ ! -e $var_file ]; then
  touch $var_file
   echo "0" > $var_file
fi
 maill=$(/usr/bin/curl  -b headers_and_cookies -L http://www.yandex.ru/m | /bin/grep -wo \"Почта\".\/\>\<strong.class=\"num\"\>[0-9]* | grep -o [0-9]*) 2>/dev/null
 cattt=$(cat $var_file)
 if [ -z $maill ]; then
  echo "0" > $var_file
   exit
else
  test_mail
fi
}
init_test 

AnonymUser
()

RSS подписка на новые темы