BG, FG, %, &, JOBS, CTRL+Z, DISOWN

Запуск процесса в фоновом режиме
Амперсанд & после команды запустит ее в фоновом режиме.

cp -pR /home/ /mnt/bacup/ &

С работающей командой тоже самое можно сделать так: нажать CTRL+Z

:~$ cp -pR /home/ /mnt/backup/
^Z
[1]+  Stopped                 cp -pR /home/ /mnt/backup/
:~$ ps ax | grep cp | grep -v grep
4833  2.9  0.0  14184   872 pts/0    T    11:40   0:01 cp -pR /home/ /mnt/backup/

Как видим процесс находится в STAT T
Набираем bg для того, чтобы запустить команду в фоне

:~$ bg
[1]+ cp -pR /home/ /mnt/backup/ &
:~$ ps ax | grep cp | grep -v grep
 4833 pts/0    R      0:01 cp -pR /home/ /mnt/backup/
:~$

Процесс перешел в STAT R и выполняется в фоне, фоновый процесс называется job (задание)
Посмотреть список заданий можно командой jobs

:~$ jobs
[1]   Stopped                 cp -pR /home/ /mnt/sdb/
[2]   Stopped                 vim 1.txt
[3]-  Stopped                 vim 2.txt
[4]+  Stopped                 vim 3.txt
  • + — текущая задача.
  • — последняя задача
  • К остальным задачам можно обратиться по их идентификационному номеру.

Запустить задачу в foreground

  • Команда fg без параметров или fg + запустит текущую задачу (со знаком +) в foreground
  • fg +
  • Команда fg — запустит последнюю задачу (задача со знаком )
  • fg -
  • Запустить задачу можно по их идентификационному номеру
    fg 2
    fg %2
  • Вместо fg можно использовать просто знак процента %
    %+
    %-
    %2

Команда disown используется для отделения задачи от таблицы задач текущего shell. При отделении задачи от текущего shell, ее родителем становится INIT. После это можно завершить текущий shell, команда продолжит выполняться. На самом деле, если отправить команду в background, а потом завершить сессию, произойдет тоже самое, т.е. родителем станет INIT

:~$ disown %2
:~$ ps -fe | grep cp | grep -v grep
s0x90      5346     1  6 12:56 ?        00:15:24 cp -pR /home/ /mnt/backup/
:~$ yes > /dev/null &
[1] 6576
:~$ ps -f | grep yes | grep -v grep
s0x90      6576  6144 96 17:26 pts/0    00:00:10 yes
:~$ logout
:~$ ps -fe | grep yes | grep -v grep
s0x90      6576     1 91 17:26 ?        00:01:15 yes

Не забывайте про чудесную утилиту-мультиплексор screen

Установка Django в виртуальное окружение на сервере с CentOS

Подключаем репозиторий EPEL(i686)

wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm

Для архитектуры x86_64

wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

Устанавливаем python-pip

yum install -y python-pip

Обновляем pip

pip-python install --upgrade pip
Downloading/unpacking pip
  Downloading pip-1.3.1.tar.gz (247Kb): 247Kb downloaded
  Running setup.py egg_info for package pip
    warning: no files found matching '*.html' under directory 'docs'
    warning: no previously-included files matching '*.txt' found under directory 'docs/_build'
    no previously-included directories found matching 'docs/_build/_sources'
Installing collected packages: pip
  Found existing installation: pip 0.8
    Uninstalling pip:
      Successfully uninstalled pip
  Running setup.py install for pip
    warning: no files found matching '*.html' under directory 'docs'
    warning: no previously-included files matching '*.txt' found under directory 'docs/_build'
    no previously-included directories found matching 'docs/_build/_sources'
    Installing pip script to /usr/bin
    Installing pip-2.6 script to /usr/bin
Successfully installed pip
Cleaning up...

Читать далее Установка Django в виртуальное окружение на сервере с CentOS

Соединение point-to-point в Debian и CentOS

Пример /etc/network/interfaces в Debian

iface eth0 inet static
        address <IP_ADDR>
        netmask 255.255.255.255
        gateway <GW_IP_ADDR>
        pointopoint <GW_IP_ADDR>

Можно через ifconfig

ifconfig eth0 inet <local_ip> netmask 255.255.255.255 pointopoint <destination_ip>
ip route add default via <destination_ip>

В CentOS чуть сложнее

  1. /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    HWADDR=<MAC address>
    ONBOOT=yes
    BOOTPROTO=static
    SCOPE="peer "
    IPADDR=<IP_ADDR>
    NETMASK=255.255.255.255
  2. /etc/sysconfig/network-scripts/route-eth0
    ADDRESS0=0.0.0.0
    NETMASK0=0.0.0.0
    GATEWAY0=<GW_IP_ADDR>

openVPN сервер под управлением CentOS

Будем устанавливать и настроивать openvpn сервер на CentOS
Сначала необходимо проверить наличе tun устройства, так как на VPS его может не быть

ls /dev/net/

вывод должен быть такой

[root@vpn 2.0]# ls /dev/net/
tun

Если вы не обнаружили файл устройства tun, обратитесь к своему провайдеру.
В стандартных репозитория CentOS и RHEL пакета openvpn нет. Поэтому сначала подключите репозитрий rpmforge

    1. Устанавливаем openvpn
      yum install openvpn -y

      openvpn CentOS

Читать далее openVPN сервер под управлением CentOS

Репозиторий rpmforge CentOS

В стандартных репозиториях CentOS и RHEL нет многих полезных пакетов, например htop или openvpn, я использую дополнительный репозиторий rpmforge для CentOS. Для подключения rpmforge, необходимо выполнить следующие действия.

yum install wget -y

Для RHEL 5 и CentOS 5 32-bit

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
rpm -ihv rpmforge-release*.rf.i386.rpm

Для RHEL 6 и CentOS 6 32-bit

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
rpm -ihv rpmforge-release*.rf.i686.rpm

Для RHEL 5 и CentOS 5 64-bit

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
rpm -ihv rpmforge-release*.rf.x86_64.rpm

Для RHEL 6 и CentOS 6 64-bit

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
rpm -ihv rpmforge-release*.rf.x86_64.rpm
yum install htop -y

Работа с пакетными менеджерами yum и rpm

  1. Установить пакет
    yum install 

    Установить локальный пакет без проверки GPG

    yum install --nogpgcheck .rpm
    yum localinstall --nogpgcheck .rpm

    Установить пакет с помощью rpm

    rpm -ivh 
  2. Удалить пакет
    yum remove 

    Удалить с помощью rpm

    rpm -e 
  3. Обновление пакетов
    yum update 

    Обновление пакета, начинающегося с pkg

    yum update pkg\*

    Обновление системы

    yum update

    Читать далее Работа с пакетными менеджерами yum и rpm

ACL CentOS

ACL могут быть заданы:

  • Для пользователя
  • Для группы
  • По маске
  • Для остальных

Пример комманды, задающей ACL

setfacl -m rules file
  • u:UID:perms
    setfacl -m u:andrius:rw /project/somefile
  • g:GID:perms
  • m:perms
  • o:perms

Читать далее ACL CentOS

Настройка квот CentOS

  1. Добавляем в /etc/fstab следующие параметры
    /dev/mapper/VolGroup-home /home ext4 defaults,usrquota,grpquota 1 1
  2. Перемонтируем файловую систему
    mount -o remount /home
  3. Устанавливаем необходимый пакет quota
    yum install -y quota
  4. Читать далее Настройка квот CentOS

Как изменить размер логического тома LVM

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

    1. Имеем: логический том, смонтированный на / размером 11G, хотим уменьшить размер на 5G, а оставшееся место смонтировать на /home
    2. Загружаемся с установочного диска в Rescue mode на финальном этапе загрузки отказываемся от chroot в нашу систему, выбираем опцию Skip
    3. Убедимся что система видит наш логический том
      vgdisplay
    4. Активируем lvm том
      vgchange -ay

Читать далее Как изменить размер логического тома LVM