No space left on device

Что делать если при попытке создать файл появляется ошибка No space left on device, но

  1. свободного места навалом
    df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/sda1             145G   53G   84G  39% /
    tmpfs                1006M     0 1006M   0% /lib/init/rw
    udev                   10M  648K  9.4M   7% /dev
    tmpfs                1006M     0 1006M   0% /dev/shm
  2. Смотрим вывод df -i. Если видим что-то вроде такого
     df -i
    Filesystem            Inodes   IUsed   IFree IUse% Mounted on
    /dev/sda1            9609216 9609216       0  100% /
    tmpfs                 224212       4  224208    1% /lib/init/rw
    udev                  224212    1208  223004    1% /dev
    tmpfs                 224212       1  224211    1% /dev/shm

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

  3. Ищем эти файлы. Спасибо Ивану Кузнецову за метод
    for i in /*; do echo $i; find $i |wc -l; done

    И удаляем их.

    rm -rf /var/www/squid-reports/many_little_logs

Копирование файлов с Windows на Linux

Копирование файлов с Windows на Linux.

#! /bin/bash
WAY=`date --date= +%F`
mkdir /mnt/backup/$WAY #создаем директорию с текущей датой
mount -t cifs ///path/to/folder /mnt/temp -o iocharset=utf8,username=Guest,passwd="guest",nounix #монтируем папку Windows директорию
cp -Rv /mnt/temp/* /mnt/backup/temp #копируем во временную папку
umount /mnt/temp
tar -cvzf /mnt/backup/$WAY/$WAY.tar.gz /mnt/backup/temp/* #архивируем
rm -rf /mnt/backup/temp/* #удаляем временные файлы
exit 0

Теперь можно добавить расписание cron

00 20   * * 1-5  backup-user   /usr/local/sbin/backup.sh > /var/log/backup.log

Это расписание будет работать ежесуточно в 20:00 с понедельника по пятницу. И записывать результат выполнения в файл backup.log

Как настроить сетевую папку (samba) в Linux (Debian Squeeze)

Создадим открытую сетевую папку общего доступа.

  1. Установим пакет samba
    aptitude install samba

    Укажем рабочую группу
    настройка samba debian squeeze

  2. Мой конфиг
    [global]
    netbios name = exchange
    server string =
    workgroup = workgroup
    announce version = 5.0
    socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192
    passdb backend = tdbsam
    security = share
    null passwords = true
    guest ok = yes
    name resolve order = hosts wins bcast
    wins support = yes
    printing = CUPS
    printcap name = CUPS
    log file = /var/log/samba/log.%m
    syslog = 0
    syslog only = no
    [EXCHANGE]
    path = /home/krmz
    browseable = yes
    read only = no
    guest ok = yes
    create mask = 0666
    directory mask = 0777
    guest only=yes
  3. Выставляем права на существующие файлы
    chown -R nobody:nogroup /path/to/folder

Настройка DHCP сервера на Debian Squeeze

  1. Установим dhcp сервер
    aptitude install dhcp3-server

    dhcp debian squeeze

  2. Запустим dhcp server на интерфейсе eth1, для этого необходимо отредактировать в /etc/default/isc-dhcp-server строку INTERFACES=»здесь интерфейс, на котором будет работать dhcp-server»
    vim /etc/default/isc-dhcp-server

    dhcp-server debian squeeze
    Читать далее Настройка DHCP сервера на Debian Squeeze

Как раздать интернет средствами Linux и Iptables

Для того, чтобы раздать интернет через вторую сетевую карту необходимо

  1. Разрешить форвардинг пакетов
     sysctl -w net.ipv4.ip_forward=1

    Или

    echo 1 > /proc/sys/net/ipv4/ip_forward

    Для того, чтобы форвардинг работал и после перезагрузки

    vim /etc/sysctl.conf

    Находим строчку

    #net.ipv4.ip_forward=1

    И раскомментируем ее

    sed -i.back /ip_forward/s/^#// /etc/sysctl.conf

    раздать интернет linux

  2. iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE

    Вместо eth0 подставляем интерфейс, который подключен к провайдеру

  3. Убедимся, что правило появилось
    iptables -t nat -L -v -n

    iptables nat masquerade

  4. Для того, чтобы настройки iptables вернулись после перезагрузки
    iptables-save > /etc/iptables.rules

    Правим файл /etc/network/interfaces, допишем туда

    pre-up iptables-restore < /etc/iptables.rules

    раздаем интернет debian squeeze

SSH по ключам

На клиенте

ssh-keygen -t rsa

Публичный ключ необходимо поместить на сервер, в файл ~/.ssh/authorized_keys, приватный остается у вас.
Разрешаем авторизацию по ключу на сервере /etc/ssh/sshd_config

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile     .ssh/authorized_keys

После этого можно подключаться

ssh -i  user@host

dmesg human readable

Человеческий вывод времени dmesg

#!/usr/bin/perl
use strict;
use warnings;
my @dmesg_new = ();
my $dmesg = "/bin/dmesg";
my @dmesg_old = `$dmesg`;
my $now = time();
my $uptime = `cat /proc/uptime | cut -d"." -f1`;
my $t_now = $now - $uptime;
sub format_time {
 my @time = localtime $_[0];
 $time[4]+=1;    # Adjust Month
 $time[5]+=1900;    # Adjust Year
 return sprintf '%4i-%02i-%02i %02i:%02i:%02i', @time[reverse 0..5];
}
foreach my $line ( @dmesg_old )
{
 chomp( $line );
 if( $line =~ m/\[\s*(\d+)\.(\d+)\](.*)/i )
 {
 # now - uptime + sekunden
 my $t_time = format_time( $t_now + $1 );
 push( @dmesg_new , "[$t_time] $3" );
 }
}
print join( "\n", @dmesg_new );
print "\n";

Как настроить KVM на Debian Squeeze

KVM Debian howto
В качестве host системы будем использовать debian squeeze x64, в качестве гостевой системы — ubuntu server 12.04 LTS x64, однако мануал подходит для любой гостевой системы.
Прежде всего необходимо убедиться, что процессор поддерживает аппаратную виртуализацию, без нее KVM не заработает.

egrep '(vmx|svm)' /proc/cpuinfo
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm tpr_shadow vnmi flexpriority
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm tpr_shadow vnmi flexpriority
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm tpr_shadow vnmi flexpriority
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm tpr_shadow vnmi flexpriority

Установка KVM Debian
Нам понадобится созданный в предыдущей статье lvm том, размещенный на raid 1 массиве.
Читать далее Как настроить KVM на Debian Squeeze

LVM Debian Squeeze

LVM (Logical Volume Manager) — менеджер логических томов. LVM — это метод распределения пространства жёсткого диска по логическим томам, размер которых можно легко менять, в отличие от разделов. Нам потребуется неотформатированный raid массив, созданный в предыдущей статье.

В нашем случае — это массив /dev/md1
raid массив linux

aptitude install lvm2

lvm debian howto
Читать далее LVM Debian Squeeze