Архив рубрики: Linux

Как в линуксе посчитать объем папок

du -s /* | sort -nr|cut -f 2-|while read a;do du -hs $a;done

Например:

  1. Подсчет размера папок в корне
    du -s /*|sort -nr|cut -f 2-|while read a;do du -hs $a;done
  2. Подсчет размера папок в /var/www
    du -s /var/www/*|sort -nr|cut -f 2-|while read a;do du -hs $a;done
  3. Подсчет размера папок в /var/lib/mysql
    du -s /var/lib/mysql/*|sort -nr|cut -f 2-|while read a;do du -hs $a;done

Добавление жетского диска на VDS с ОС CentOS (Linux)

  • Узнаем какая ОС на виртуальной машине:
    # cat /etc/*-release
    CentOS release 6.6 (Final)
    CentOS release 6.6 (Final)
    CentOS release 6.6 (Final)
  • Даем команду пересканировать диски:
    # echo "- - -" > /sys/class/scsi_host/host0/scan
    # echo "- - -" > /sys/class/scsi_host/host1/scan
    # echo "- - -" > /sys/class/scsi_host/host2/scan
    
  • Командой fdisk -l получаем список подключенных дисков:
    # fdisk -l | grep Диск
    Диск /dev/sda: 16.1 ГБ, 16106127360 байт
    Диск /dev/sdb: 59.1 ГБ, 59055800320 байт
    Диск /dev/mapper/vg_gnkk-lv_root: 14.0 ГБ, 13967032320 байт
    Диск /dev/mapper/vg_gnkk-lv_swap: 1610 МБ, 1610612736 байт
    Диск /dev/sdc: 107.4 ГБ, 107374182400 байт
  • Создаем новый раздел на диске:
    #fdisk /dev/sdc
    Устройство не содержит ни верной таблицы разделов DOS, ни метки диска Sun, SGI или OSF
    Building a new DOS disklabel with disk identifier 0x2e1335e9.
    Changes will remain in memory only, until you decide to write them.
    After that, of course, the previous content won't be recoverable.
    
    Предупреждение: неверный флаг 0x0000 таблицы разделов 4 будет исправлен записью
    
    WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
             switch off the mode (command 'c') and change display units to
             sectors (command 'u').
    
    Команда (m для справки): n
    Действие команды
     e расширенный
     p основной раздел (1-4)
    p
    Номер раздела (1-4): 1
    Первый цилиндр (1-13054, по умолчанию 1):
    Используется значение по умолчанию 1
    Last цилиндр, +цилиндры or +size{K,M,G} (1-13054, по умолчанию 13054):
    Используется значение по умолчанию 13054
    
    Команда (m для справки): w
    Таблица разделов была изменена!
    
    Вызывается ioctl() для перечитывания таблицы разделов.
    Синхронизируются диски.
    

    И работа команды fdisk прекращается.

  • Создаем новую файловую систему на разделе:
    mkfs.ext4 /dev/sdc1
    mke2fs 1.41.12 (17-May-2010)
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=0 blocks, Stripe width=0 blocks
    6553600 inodes, 26214055 blocks
    1310702 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=4294967296
    800 block groups
    32768 blocks per group, 32768 fragments per group
    8192 inodes per group
    Superblock backups stored on blocks:
            32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
            4096000, 7962624, 11239424, 20480000, 23887872
    
    Writing inode tables: 305/800
    

    Ждем завершения форматирования:

    Writing inode tables: done
    Creating journal (32768 blocks): done
    Writing superblocks and filesystem accounting information: done
    
    This filesystem will be automatically checked every 37 mounts or
    180 days, whichever comes first.  Use tune2fs -c or -i to override.
    
  • Проверяем новый диск:
    # mount -t ext4 /dev/sdc1 /mnt
    # mount
    /dev/mapper/vg_gnkk-lv_root on / type ext4 (rw)
    proc on /proc type proc (rw)
    sysfs on /sys type sysfs (rw)
    devpts on /dev/pts type devpts (rw,gid=5,mode=620)
    tmpfs on /dev/shm type tmpfs (rw)
    /dev/sda1 on /boot type ext4 (rw)
    /dev/sdb1 on /home type ext4 (rw)
    none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
    /dev/sdc1 on /mnt type ext4 (rw)
    
    #df -h /mnt
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sdc1        99G   60M   94G   1% /mnt
    

    Все, диском можно пользоваться.

Плагин для DNSManager, обрабатывающий создание зоны

 

#!/usr/bin/perl
#Скрипт обрабатывает события
#Функция: domain.edit
#Функция: domain.delete
#
#
#
#Да, при создании зоны в DNSmanager запускается функция domain.edit с параметрами:.
#
#clicked_button=ok&dtype=master&email=<E-mail>&func=domain.edit&ip=<IP адрес>&masterip=&na
#
#
use CGI;


#Функции
#

sub l
{
        my $filename = $0.'.log';
        open(my $fh, '>>', $filename) or die "Не могу открыть '$filename' $!";
                print $fh "$_[0]\n";
        close $fh;
}

# Тело скрипта
my $Q = new CGI;
$func = $Q->param("func");
$elid = $Q->param("elid");
l('Вызов скрипта. СТАРТ.');
l(`date`);
l('func:'.$func);
l('elid:'.$elid);
l('clicked_button='.$Q->param('clicked_button'));
l('dtype='.$Q->param('dtype'));
l('email='.$Q->param('email'));
l('func='.$Q->param('func'));
l('ip='.$Q->param('ip'));
l('masterip='.$Q->param('masterip'));
l('name='.$Q->param('name'));
l('progressid='.$Q->param('progressid'));
l('sfrom='.$Q->param('sfrom'));
l('sok='.$Q->param('sok'));

#
#Отличить в плагине создание домена от редактирования можно по параметру elid, он пустой п
#

if ( $func eq "domain.edit" )
{
#редактирвоание домена

    unless ( $elid )
    {
        #   /*
        #    Параметр elid пустой. Домен создается.
        # Нужно разобрать входные параметры функции
        # clicked_button=ok
        # dtype=master
        # email=<E-mail>
        # func=domain.edit
        # ip=<IP адрес>
        # masterip=
        # name=<Домен>
        # progressid=false
        # sfrom=ajax
        # sok=ok.
        # Это доступно из.
        # $Q->param("ПАРАМЕТР")
        #У скрипта на ISPManager входные параметры:
        #zone - текстовый параметр, имя зоны
        #ipmaster - IP адрес мастера зоны
        #del - любое значение, признак удаления зоны.
        #*/
        l('elid пустой');
        $zone = $Q->param('name');
        #ipmaster - передается в скрипт на ISPManager IP адрес мастера зоны
        $ipmaster = $Q->param('ip');
        l("$zone master $ipmaster");

    }
    else
    {
        #/*
        # Параметр elid не пустой. Зона уже существует. Ни чего делать не надо.
        # Или надо проверить существование зоны на вторичном и "передернуть" его?
        #TO-DO - удаление зоны!!!!
        #*/
        l("$elid существует");
        unless ( $Q->param('name') )
        {
            $zone=$elid;
        }...
        else
        {
            $zone = $Q->param('name');
        }
        l("создание домена $zone на $ipmaster");
    }
}
if ( $func eq "domain.delete")
{
    # Удаление домена
    l("Удаление домена $zone");
}
l("end");
print "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<doc/>\n";


 

 

Узнать какой процесс «слушает» порт

netstat -tpln | grep ПОРТ

ПОРТ — номер порта.

например:

 

root@scm:~# netstat -tpln | grep 1132
tcp        0      0 0.0.0.0:1132              0.0.0.0:*               LISTEN      1057/sshd
tcp6       0      0 :::1132                   :::*                    LISTEN      1057/sshd

Видно, что соединение на порт 1132 будет обслужено программой sshd.

Команда apt-get требует вставить диск.

Корни проблемы в том, что при установке ОС не возможно отказаться от сканирования установочного диска и записи ссылки на локальный CD-ROM  в списке репозитарий.

И при выполнении команды

$sudo apt-get install -y mc samba

Получаем такое сообщение:

Смена носителя: вставьте диск с меткой
«Debian GNU/Linux 8.3.0 _Jessie_ — Official amd64 DVD Binary-1 20160123-19:03»
в устройство «/media/cdrom/» и нажмите ввод

Для того, что бы отучить систему искать пакеты в репозитарии на диске, открываем на редактирование файл  /etc/apt/sources.list

$ sudo nano /etc/apt/sources.list

Видим содержимое файла:

#

# deb cdrom:[Debian GNU/Linux 8.3.0 _Jessie_ — Official amd64 DVD Binary-1 2016$

deb cdrom:[Debian GNU/Linux 8.3.0 _Jessie_ — Official amd64 DVD Binary-1 201601$

deb http://mirror.mephi.ru/debian/ jessie main
deb-src http://mirror.mephi.ru/debian/ jessie main

deb http://security.debian.org/ jessie/updates main contrib
deb-src http://security.debian.org/ jessie/updates main contrib

# jessie-updates, previously known as ‘volatile’
deb http://mirror.mephi.ru/debian/ jessie-updates main contrib
deb-src http://mirror.mephi.ru/debian/ jessie-updates main contrib

Удаляем строку, указывающую на локальный CD-ROM, оставляем только  указатели на сетевые репозитарии.