команды systemd

http://tlhp.cf/systemd-in-action-part-2/

Краткий список основных команд для ZFS

$ man zpool
$ man zfs
Справка по структуре команд и их параметрам

$ su
Password:
# cd /
# mkfile 100m disk1 disk2 disk3 disk5
# mkfile 50m disk4
# ls -l disk*
-rw——T 1 root root 104857600 Sep 11 12:15 disk1
-rw——T 1 root root 104857600 Sep 11 12:15 disk2
-rw——T 1 root root 104857600 Sep 11 12:15 disk3
-rw——T 1 root root 52428800 Sep 11 12:15 disk4
-rw——T 1 root root 104857600 Sep 11 12:15 disk5
Создать несколько «виртуальных устройств» (vdevs как описано в документации к zpool). Они также могут быть реальными разделами диска, если таковые доступны.

# zpool create myzfs /disk1 /disk2
# zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
myzfs 191M 94K 191M 0% ONLINE —
Создать хранилище (пул устройств) и проверить его размер и использование.

# zpool status -v
pool: myzfs
state: ONLINE
scrub: none requested
config:NAME STATE READ WRITE CKSUM
myzfs ONLINE 0 0 0
/disk1 ONLINE 0 0 0
/disk2 ONLINE 0 0 0errors: No known data errors
Более детальная информация о хранилище.

# zpool destroy myzfs
# zpool list
no pools available
Удалить ZFS пул

# zpool create myzfs mirror /disk1 /disk4
invalid vdev specification
use ‘-f’ to override the following errors:
mirror contains devices of different sizes
При попытке создания пула, vdevs которого имеют разичный размер, возникнет ошибка.
Если использовать флаг ‘-f’, то пул создастся, но размер будет соответствовать меньшему устройству.

# zpool create myzfs mirror /disk1 /disk2 /disk3
# zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
myzfs 95.5M 112K 95.4M 0% ONLINE —
# zpool status -v
pool: myzfs
state: ONLINE
scrub: none requested
config:NAME STATE READ WRITE CKSUM
myzfs ONLINE 0 0 0
mirror ONLINE 0 0 0
/disk1 ONLINE 0 0 0
/disk2 ONLINE 0 0 0
/disk3 ONLINE 0 0 0errors: No known data errors
Создать «зеркалируемое» хранилище. В данном случае хранилище зеркалируется 3 раза.

# zpool detach myzfs /disk3
# zpool status -v
pool: myzfs
state: ONLINE
scrub: none requested
config:NAME STATE READ WRITE CKSUM
myzfs ONLINE 0 0 0
mirror ONLINE 0 0 0
/disk1 ONLINE 0 0 0
/disk2 ONLINE 0 0 0errors: No known data errors
Исключить устройство из пула.

# zpool attach myzfs /disk1 /disk3
# zpool status -v
pool: myzfs
state: ONLINE
scrub: resilver completed with 0 errors on Tue Sep 11 13:31:49 2007
config:NAME STATE READ WRITE CKSUM
myzfs ONLINE 0 0 0
mirror ONLINE 0 0 0
/disk1 ONLINE 0 0 0
/disk2 ONLINE 0 0 0
/disk3 ONLINE 0 0 0errors: No known data errors
Добавляем устройство в пул. В этом случае мы создадим зеркало, если его до сих пор не было, а если
было, то в зеркале будет 3 устройства.

# zpool remove myzfs /disk3
cannot remove /disk3: only inactive hot spares can be removed
# zpool detach myzfs /disk3
Попытка удалить устройство из пула.
В данном случае устройство используется в составе зеркала, поэтому надо применить команду «zpool detach».

# zpool add myzfs spare /disk3
# zpool status -v
pool: myzfs
state: ONLINE
scrub: none requested
config:NAME STATE READ WRITE CKSUM
myzfs ONLINE 0 0 0
mirror ONLINE 0 0 0
/disk1 ONLINE 0 0 0
/disk2 ONLINE 0 0 0
spares
/disk3 AVAILerrors: No known data errors
Добавление диска горячей замены к пулу.

# zpool remove myzfs /disk3
# zpool status -v
pool: myzfs
state: ONLINE
scrub: none requested
config:NAME STATE READ WRITE CKSUM
myzfs ONLINE 0 0 0
mirror ONLINE 0 0 0
/disk1 ONLINE 0 0 0
/disk2 ONLINE 0 0 0errors: No known data errors
Удаление диска горячей замены из пула.

# zpool offline myzfs /disk1
# zpool status -v
pool: myzfs
state: DEGRADED
status: One or more devices has been taken offline by the administrator.
Sufficient replicas exist for the pool to continue functioning
in a degraded state.
action: Online the device using ‘zpool online’ or replace the device
with ‘zpool replace’.
scrub: resilver completed with 0 errors on Tue Sep 11 13:39:25 2007
config:NAME STATE READ WRITE CKSUM
myzfs DEGRADED 0 0 0
mirror DEGRADED 0 0 0
/disk1 OFFLINE 0 0 0
/disk2 ONLINE 0 0 0errors: No known data errors
Запретить использование выбранного устройства (состояние offline). Пока устройство не будет возвращено к использованию (состояние online) на него не будет производиться запись и с него не будет производиться чтение. Чтобы временно отключить выбранное устройство используйте ключ -t. Перезагрузка вернет устройство в состояние online.

# zpool online myzfs /disk1
# zpool status -v
pool: myzfs
state: ONLINE
scrub: resilver completed with 0 errors on Tue Sep 11 13:47:14 2007
config:NAME STATE READ WRITE CKSUM
myzfs ONLINE 0 0 0
mirror ONLINE 0 0 0
/disk1 ONLINE 0 0 0
/disk2 ONLINE 0 0 0errors: No known data errors
Разрешить использование выбранного устройства (состояние online).

# zpool replace myzfs /disk1 /disk3
# zpool status -v
pool: myzfs
state: ONLINE
scrub: resilver completed with 0 errors on Tue Sep 11 13:25:48 2007
config:NAME STATE READ WRITE CKSUM
myzfs ONLINE 0 0 0
mirror ONLINE 0 0 0
/disk3 ONLINE 0 0 0
/disk2 ONLINE 0 0 0errors: No known data errors
Заменить один диск на другой в пуле устройств, например в случае неисправности /disk1.

# zpool scrub myzfs
«Чистка» хранилища. Проверяет все соответствия контрольных сумм. На зеркалируемых или RAID пулах ZFS автоматически исправит повреждения в данных.
ВНИМАНИЕ: «чистка» интенсивно использует операции ввода-вывода.

# zpool export myzfs
# zpool list
no pools available
Экспорт хранилища для последующего импортирования на другой системе.

# zpool import -d / myzfs
# zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
myzfs 95.5M 114K 95.4M 0% ONLINE —
Импорт экспортированного хранилища.
Если ключ -d не задан, команда ищет /dev/dsk.
Так как в данном примере мы используем файлы, необходимо указать директорию с файлами используемыми хранилищем.

# zpool upgrade
This system is currently running ZFS pool version 8.All pools are formatted using this version.
# zpool upgrade -v
This system is currently running ZFS pool version 8.The following versions are supported:
VER DESCRIPTION
— ———————————————————
1 Initial ZFS version
2 Ditto blocks (replicated metadata)
3 Hot spares and double parity RAID-Z
4 zpool history
5 Compression using the gzip algorithm
6 pool properties
7 Separate intent log devices
8 Delegated administration
For more information on a particular version, including supported
releases, see:

http://www.opensolaris.org/os/community/zfs/version/N

Where ‘N’ is the version number.

Показать версию используемого пула. Флаг -v показывает возможности, поддерживаемые данным пулом. Используйте флаг -a, чтобы обновить все доступные пулы до новейшей из них версии. Обновленные пулы больше не будут доступны из систем, на которых работают более старые версии.

# zpool iostat 5
capacity operations bandwidth
pool used avail read write read write
———- —— —— —— —— —— ——
myzfs 112K 95.4M 0 4 26 11.4K
myzfs 112K 95.4M 0 0 0 0
myzfs 112K 95.4M 0 0 0 0
Получить статистику по операциям ввода/вывода

# zfs create myzfs/colin
# df -h
Filesystem kbytes used avail capacity Mounted on

myzfs/colin 64M 18K 63M 1% /myzfs/colin
Создать файловую систему и проверить ее стандартной командой df -h. Файловые системы автоматически монтируются в /zfs (по умолчанию). См. раздел Mountpoints в руководстве к zfs.

# zfs list
NAME USED AVAIL REFER MOUNTPOINT
myzfs 139K 63.4M 19K /myzfs
myzfs/colin 18K 63.4M 18K /myzfs/colin
Получить список файловых систем zfs

# zpool add myzfs /disk1
invalid vdev specification
use ‘-f’ to override the following errors:
mismatched replication level: pool uses mirror and new vdev is file
Попытка добавить одно устройство к зеркалируемому хранилищу провалилась.

# zpool add myzfs mirror /disk1 /disk5
# zpool status -v
pool: myzfs
state: ONLINE
scrub: none requested
config:NAME STATE READ WRITE CKSUM
myzfs ONLINE 0 0 0
mirror ONLINE 0 0 0
/disk3 ONLINE 0 0 0
/disk2 ONLINE 0 0 0
mirror ONLINE 0 0 0
/disk1 ONLINE 0 0 0
/disk5 ONLINE 0 0 0errors: No known data errors
Добавление зеркалируемого набора устройств (vdevs).

# zfs create myzfs/colin2
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
myzfs 172K 159M 21K /myzfs
myzfs/colin 18K 159M 18K /myzfs/colin
myzfs/colin2 18K 159M 18K /myzfs/colin2
Создать вторую файловую систему. Заметим, что обе файловые системы показывают доступные 159M, т.к. не заданы квоты. Любая из файловых систем может вырасти до размеров всего пула.

# zfs set reservation=20m myzfs/colin
# zfs list -o reservation
RESERV
none
20M
none
Зарезервировать указанное пространство для файловой системы, таким образом остальные пользователи не смогут занять все доступное место.

# zfs set quota=20m myzfs/colin2
# zfs list -o quota myzfs/colin myzfs/colin2
QUOTA
none
20M
Установить и показать квоты.

# zfs set compression=on myzfs/colin2
# zfs list -o compression
COMPRESS
off
off
on
Включить и проверить сжатие.

# zfs set sharenfs=on myzfs/colin2
# zfs get sharenfs myzfs/colin2
NAME PROPERTY VALUE SOURCE
myzfs/colin2 sharenfs on local
Сделать общий ресурс через NFS. При этом, для того, чтобы ресурс был доступен после перезагрузки, не требуется вносить изменения /etc/dfs/dfstab.

# zfs set sharesmb=on myzfs/colin2
# zfs get sharesmb myzfs/colin2
NAME PROPERTY VALUE SOURCE
myzfs/colin2 sharesmb on local
Сделать общий ресурс по протоколу CIFS/SMB. Таким образом мы предоставим доступ к нашей файловой системе ZFS пользователям Windows.

# zfs snapshot myzfs/colin@test
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
myzfs 20.2M 139M 21K /myzfs
myzfs/colin 18K 159M 18K /myzfs/colin
myzfs/colin@test 0 — 18K —
myzfs/colin2 18K 20.0M 18K /myzfs/colin2
Создать snapshot под названием test.

# zfs rollback myzfs/colin@test
Откатится к ранее созданному snapshot test.

# zfs clone myzfs/colin@test myzfs/colin3
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
myzfs 20.2M 139M 21K /myzfs
myzfs/colin 18K 159M 18K /myzfs/colin
myzfs/colin@test 0 — 18K —
myzfs/colin2 18K 20.0M 18K /myzfs/colin2
myzfs/colin3 0 139M 18K /myzfs/colin3
Напрямую к snapshot’у обращаться нельзя. Необходимо клонировать файловую систему (версии test). Клон может располагаться в любом месте иерархии ZFS и будет сделан того же типа, что и оригинал.

# zfs destroy myzfs/colin2
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
myzfs 20.1M 139M 22K /myzfs
myzfs/colin 18K 159M 18K /myzfs/colin
myzfs/colin@test 0 — 18K —
myzfs/colin3 0 139M 18K /myzfs/colin3
Уничтожить выбранную файловую систему.

# zfs destroy myzfs/colin
cannot destroy ‘myzfs/colin’: filesystem has children
use ‘-r’ to destroy the following datasets:
myzfs/colin@test
Попытка уничтожить файловую систему, у которой есть вложения. В данном случае snapshot. Необходимо либо удалить snapshot, либо сделать клона и вынеся его из данной файловой системы.

# zfs promote myzfs/colin3
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
myzfs 20.1M 139M 21K /myzfs
myzfs/colin 0 159M 18K /myzfs/colin
myzfs/colin3 18K 139M 18K /myzfs/colin3
myzfs/colin3@test 0 — 18K —
# zfs destroy myzfs/colin
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
myzfs 147K 159M 21K /myzfs
myzfs/colin3 18K 159M 18K /myzfs/colin3
myzfs/colin3@test 0 — 18K —
Вынесение клонированной файловой системы. Делается для того чтобы убрать зависимость от snapshot’а оригинала. Теперь snapshot является вложенным для клонированной файловой системы и оригинал файловой системы можно удалять.

# zfs rename myzfs/colin3 myzfs/bob
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
myzfs 153K 159M 21K /myzfs
myzfs/bob 18K 159M 18K /myzfs/bob
myzfs/bob@test 0 — 18K —
# zfs rename myzfs/bob@test myzfs/bob@newtest
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
myzfs 146K 159M 20K /myzfs
myzfs/bob 18K 159M 18K /myzfs/bob
myzfs/bob@newtest 0 — 18K —
Переименование файловой системы и отдельное переименование snapshot.

# zfs get all
NAME PROPERTY VALUE SOURCE
myzfs type filesystem —
myzfs creation Tue Sep 11 14:21 2007 —
myzfs used 146K —
myzfs available 159M —
myzfs referenced 20K —
[…]
Отобразить свойства данного пула. В дальнейшем данная команда может быть дополнена другими опциями.

# zpool destroy myzfs
cannot destroy ‘myzfs’: pool is not empty
use ‘-f’ to force destruction anyway
Нельзя удалить пул с активными файловыми системами.

# zfs unmount myzfs/bob
# df -h
myzfs 159M 20K 159M 1% /myzfs
Отмонтировать файловую систему в ZFS.

# zfs mount myzfs/bob
# df -h
myzfs 159M 20K 159M 1% /myzfs
myzfs/bob 159M 18K 159M 1% /myzfs/bob
Монтировать в ZFS файловую систему. Это происходит автоматически при загрузке.

# zfs send myzfs/bob@newtest | ssh localhost zfs receive myzfs/backup
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
myzfs 172K 159M 20K /myzfs
myzfs/backup 18K 159M 18K /myzfs/backup
myzfs/backup@newtest 0 — 18K —
myzfs/bob 18K 159M 18K /myzfs/bob
myzfs/bob@newtest 0 — 18K —
Создается snapshot, который передается на вход команды zfs reveive. В данном случае, в качестве примера, использовано zfs reveive на localhost, но можно делать резервные копии на удаленном хосте или в локальном файле.

# zpool history
History for ‘myzfs’:
2007-09-11.15:35:50 zpool create myzfs mirror /disk1 /disk2 /disk3
2007-09-11.15:36:00 zpool detach myzfs /disk3
2007-09-11.15:36:10 zpool attach myzfs /disk1 /disk3
2007-09-11.15:36:53 zpool detach myzfs /disk3
2007-09-11.15:36:59 zpool add myzfs spare /disk3
2007-09-11.15:37:09 zpool remove myzfs /disk3
2007-09-11.15:37:18 zpool offline myzfs /disk1
2007-09-11.15:37:27 zpool online myzfs /disk1
2007-09-11.15:37:37 zpool replace myzfs /disk1 /disk3
2007-09-11.15:37:47 zpool scrub myzfs
2007-09-11.15:37:57 zpool export myzfs
2007-09-11.15:38:05 zpool import -d / myzfs
2007-09-11.15:38:52 zfs create myzfs/colin
2007-09-11.15:39:27 zpool add myzfs mirror /disk1 /disk5
2007-09-11.15:39:38 zfs create myzfs/colin2
2007-09-11.15:39:50 zfs set reservation=20m myzfs/colin
2007-09-11.15:40:18 zfs set quota=20m myzfs/colin2
2007-09-11.15:40:35 zfs set compression=on myzfs/colin2
2007-09-11.15:40:48 zfs snapshot myzfs/colin@test
2007-09-11.15:40:59 zfs rollback myzfs/colin@test
2007-09-11.15:41:11 zfs clone myzfs/colin@test myzfs/colin3
2007-09-11.15:41:25 zfs destroy myzfs/colin2
2007-09-11.15:42:12 zfs promote myzfs/colin3
2007-09-11.15:42:26 zfs rename myzfs/colin3 myzfs/bob
2007-09-11.15:42:57 zfs destroy myzfs/colin
2007-09-11.15:43:23 zfs rename myzfs/bob@test myzfs/bob@newtest
2007-09-11.15:44:30 zfs receive myzfs/backup
Показать историю команд для всех хранилищ. Можно посмотреть историю только для одного хранилища указав его имя в командной строке. Храниться история только для существующих хранилищ. При удалении хранилища его история удаляется.

# zpool destroy -f myzfs
# zpool status -v
no pools available
Используйте ключ -f, чтобы удалить хранилище с существующими файловыми файловыми системами.

Чистка мусора linux

du -sm /* | sort -nr
du -sm /var | sort -nr

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

find . -type f -size +500M -exec ls -l {} \; | sort -k5 -n -r| less

Для вывода отсортированного по размеру списка директорий можно использовать команду:

find . -type d -maxdepth 1 -exec du -s {} \;|sort -k1 -r -n| less

Для выявления конечной директории с большими файлами можно снять ограничение на
рекурсивную проверку:

find . -type d -exec du -s {} \;| sort -k1 -r -n| less

Найти все avi, mpg, wmv файлы можно так:

find . \( -iname «*.avi» -o -iname «*.mpg» -o -iname «*.wmv» \) -type f -exec ls -l {} \;| less

PS. Вместо ls можно было использовать встроенные опции -ls или -printf «%s %P\n»,
но %P не всегда легко вспомнить, а вывод -ls не совсем привычен.

Найти 10 самых больших фалов, начиная с ‘/’ (корня)
$ find / -mount -type f -ls 2> /dev/null | sort -rnk7 | head -10 | awk ‘{printf «%10d MB\t%s\n»,($7/1024)/1024,$NF}’

Найти 10 самых больших фалов, начиная с ‘/home’
$ find /home -mount -type f -ls 2> /dev/null | sort -rnk7 | head -10 | awk ‘{printf «%10d MB\t%s\n»,($7/1024)/1024,$NF}’

самые большие директории:
du -kx | egrep -v «\./.+/» | sort -n

Спасибы.

http://www.shellhacks.com/ru/Poisk-Bolshih-Faylov-v-Linux

Время жизни сессий +

Очистка файлов сессий PHP в Debian, через какое время это делать?
На долго работающих системах образуются папки /tmp или mod-tmp (либо bin-tmp) в случае использования ISPManager размером в миллионы и десятки миллионов файлов с файлами PHP сессий sess_тут_длинный_код, которые служат для временного хранения сессий от пользователей. То, что это наносит ущерб производительности файловой системы — однозначно (попробуйте пролистать такую папку ls ом или хотя бы удалить), поэтому их надо удалять. Возникает вопрос — как часто их можно удалять, чтобы не повредить работе приложений их использующих?

В комментариях к конфигу в Debian 5 Lenny сказано следующее:

; After this number of seconds, stored data will be seen as ‘garbage’ and
; cleaned up by the garbage collection process.
session.gc_maxlifetime = 1440

; NOTE: If you are using the subdirectory option for storing session files
; (see session.save_path above), then garbage collection does *not*
; happen automatically. You will need to do your own garbage
; collection through a shell script, cron entry, or some other method.
; For example, the following script would is the equivalent of
; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):
; cd /path/to/sessions; find -cmin +24 | xargs rm

Как можно понять из текста, за время жизни файлов сессий отвечает переменная session.gc_maxlifetime, которая стандартно выставлена в 1440 секунд или 24 минуты. Также для определения этого промежутка на основе значений, заданных в системных php.ini, в Debian есть служебный скрипт:

/usr/lib/php5/maxlifetime
24

Вообщем редактируем /usr/lib/php5/maxlifetime и будет нам счастье.

Спасибо.

Поиск текста

grep -rl ‘i_love_people’ /var/www
find / -name *.php | xargs grep tekst

xrdp + lxde

Debian 7

apt-get update
apt-get upgrade
apt-get install lxde-core x11-xkb-utils
apt-get remove network-manager-gnome

Устанавливаем XRDP:

sudo apt-get update

thanks -> http://scarygliders.net/x11rdp-o-matic-information/

С сайта http://scarygliders.net/ берем адрес скрипта для автоматической компиляции XRDP из исходников самой последней доступной версии.

sudo apt-get install git

sudo git clone https://github.com/scarygliders/X11RDP-o-Matic.git
создается в домашнем каталоге папка X11RDP-o-Matic

sudo su

cd X11RDP-o-Matic

./X11rdp-o-matic.sh –justdoit

стартует долгий процесс скачивания, проверки и компиляции модулей для xrdp, обязательно нужно дождатся завершения процедуры.
В папке /X11RDP-o-Matic/packages/ лежат уже готовые собранные пакеты x11rdp_0.7.0-1_amd64.deb, xrdp_0.7.0-1_amd64.deb, пригодятся при переинсталированнии сервера без необходимости еще раз компилировать и собирать xrdp из исходников.

Проверяем установку xrdp:

sudo /etc/init.d/xrdp restart

netstat -lntp |grep 3389

Ставим xrdp в автозагрузку:

sudo update-rc.d xrdp defaults

sudo update-rc.d xrdp enable

Там же в папке /X11RDP-o-Matic/ находится скрипт создания файла *.xsession с командой startlxde для запуска LXDE при подключении пользователей:

./RDPsesconfig.sh

Добавляем в /etc/X11/Xsession после set -e
## Для корретного определения локали
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi

cat /etc/xdg/lxsession/LXDE/autostart

@lxpanel —profile LXDE
# @pcmanfm —desktop —profile LXDE
@bash /etc/keytab
@google-chrome —start-maximized —disable-setuid-sandbox

cat /etc/keytab

#!/bin/bash
sleep 3
setxkbmap -layout «us,ru» -option «grp:alt_shift_toggle»

start usl google
/home/user/.config/google-chrome/Default/Preferences

Настройки нижней панели lxde
cat /home/user/.config/lxpanel/LXDE/panels/panel

# lxpanel <profile> config file. Manually editing is not recommended.
# Use preference dialog in lxpanel to adjust config when you can.

Global {
    edge=bottom
    allign=left
    margin=0
    widthtype=percent
    width=100
    height=26
    transparent=0
    tintcolor=#000000
    alpha=0
    autohide=1
    heightwhenhidden=2
    setdocktype=1
    setpartialstrut=1
    usefontcolor=1
    fontsize=10
    fontcolor=#ffffff
    usefontsize=0
    background=1
    backgroundfile=/usr/share/lxpanel/images/background.png
    iconsize=24
}

Plugin {
    type = launchbar
    Config {
        Button {
            id=lxde-logout.desktop
        }
    }
}

Plugin {
    type = dclock
    Config {
        ClockFmt=%R
        TooltipFmt=%A %x
        BoldFont=0
        IconOnly=0
        CenterText=0
    }
}

Plugin {
    type = xkb
    Config {
        DisplayType=0
        PerAppLayout=1
        DefaultGroup=0
    }
}

Plugin {
    type = launchbar
    Config {
        Button {
            id=/usr/share/applications/google-chrome.desktop
        }
    }
}

 

В /usr/share/applications/google-chrome.desktop дописать ключи —start-maximized —disable-setuid-sandbox

———————————————
Подводные камни с AD

http://g00d.ru/other/2012/10/31/terminalnyy-server-rdp-nx-na-ubuntu-s-ad-avtorizaciey-iz-ad.html

msmtp

Во многих дистрибутивах она изначально есть в пакетах, поэтому ее установка проблем не составляет. В Debian Linux пишем:
# apt-get install msmtp
В FreeBSD:
# cd /usr/ports/mail/msmtp
# make && make install && make clean
# rehash
Теперь выполним
# msmtp —version
чтобы узнать, где находится системный файл конфигурации (обычно под Linux это /etc/msmtprc, под FreeBSD — /usr/local/etc/msmtprs). Теперь можно приступить к его редактированию. Файл может содержать настройки для нескольких аккаунтов. В простейшем случае для аутентификации достаточно указать следующее:
account default
auth on
user имя_пользователя
password пароль
from ящик_отправителя
timeout 5
Последняя строка — это таймаут для соединения с сервером. В случае отправки почты из PHP-скриптов он должен быть небольшим, чтобы если SMTP-сервер упадет, это не сильно сказалось на работе сайта.
Проверим, что подключение к серверу проходит нормально:
# msmtp —serverinfo
Далее найдем в php.ini строку sendmail_path и укажем в ней путь к msmtp (пример для FreeBSD):
sendmail_path = «/usr/local/bin/msmtp -t»
Не забываем про кавычки, их отсутствие будет приводить к ошибке.
Казалось бы, на этом все, и после перезапуска Apache отправка почты должна заработать, но обнаружилась одна тонкость. При отправке письма с опцией -t msmtp создает где-то (скорее всего, в текущем каталоге) временный файл, и в ряде случаев на это может не хватить прав. В этом случае письмо не отправится, и запись в лог об этом так же не будет сделана. Чтобы избежать такого, нужно прописать в переменную TMPDIR каталог, который точно открыт для записи, например, /tmp. Сделать это можно разными способами, самый простой — добавить в скрипт перед вызовом функции mail вот такую строку:
putenv(‘TMPDIR=/tmp’);
После этого отправка писем через внешний сервер должна заработать.

Спасибо. http://new.xpro.su/server-admin/php-msmtp

Установка sugarCRM 6.5

http://sugartalk.ru/install-sugar-prepair.html

Вообщем все по тексту

http://www.sugarforge.org/frs/?group_id=443 — русификация 6.5
https://github.com/likhobory/SuiteCRM7RU — Русификатор 7 и т.д.

Установка suitecrm тривиальна. по мануалу от sugarcrm
+
сброс пароля admin
update users set user_hash = md5(‘clint’) where user_name = ‘admin’;
+
сходу не подтянул русский_лагн_пак, но сам заработал на русском

Перезагрузка windows 7 если не найдена PCI-e карта. — не дописано

После превращения из видеосервера в ферму с виртуалками на XenCloudServer нужно выделить машину под Windows 7 для 3 карт Devline на PCI-e. Проблема заключаешся в том, что виртаулка при проброса pci-e карт сначала видит ТОЛЬКО одну, а после второй перезагрузки видит все 3!

Решил написать скрипт в несколько строк для проверки наличия 3х карт. Если их нет то идем в ребут.
Брал за основу нарытый в инетах скрипт:

<# 
.SYNOPSIS 
    Uses Win32_PNPEntity to return information about non-working devices.
.DESCRIPTION 
    This script calls Get-WmiObject to retrieve plug and play details,  
    then formats and displays non-working devices. The script also has to 
    work around how WMI returns 0 and 1 object (i.e. no $obj.count). 
     
    This is also sample 6 on http://msdn.microsoft.com/en-us/library/aa394587(VS.85).aspx 
    recoded with PowerShell. 
.NOTES 
    File Name  : Get-NonWorkingDevices.ps1 
    Author     : Thomas Lee - tfl@psp.co.uk 
    Requires   : PowerShell V2 CTP3 
.LINK 
    Script posted to: 
    http://www.pshscripts.blogspot.com 
    Original MSDN Page 
    http://msdn.microsoft.com/en-us/library/aa394587(VS.85).aspx 
.EXAMPLE 
    PS C:\foo> Get-NonWorkingDevices.ps1 
    No bad devices on Cookham8 
.EXAMPLE 
    PS C:\foo> Get-NonWorkingDevices.ps1 
    Total Bad devices on Cookham8: 1 
    Name           : NETGEAR FA311v2 PCI Adapter - Virtual Network 
    Class Guid     : {4d36e972-e325-11ce-bfc1-08002be10318} 
    Description    : Microsoft Virtual Network switch Adapter 
    Device ID      : ROOT\VMS_MP\0001 
    Manufacturer   : 
    PNP Device Id  : ROOT\VMS_MP\0001 
    Service Name   : VMSMP 
#> 
 
### 
#   Start of Script 
### 
 
# Get non-working devices: 
$BadDevices = Get-WmiObject Win32_PNPEntity | Where {$_.ConfigManagerErrorcode -ne 0} 
 
# Display bad devices  
$Hostname = Hostname 
if (!$BadDevices) { 
   "No bad devices on {0}" -f $Hostname 
}  # end if 
else { 
if (!$BadDevices.Count) {$Count=1} else {$Count=$BadDevices.count} 
"Total Bad devices on {0}: {1}" -f $Hostname, $Count 
foreach ($Device in $BadDevices) { 
"Name           : {0}" -f $Device.Name 
"Class Guid     : {0}" -f $Device.Classguid 
"Description    : {0}" -f $Device.Description 
"Device ID      : {0}" -f $Device.Deviceid 
"Manufacturer   : {0}" -f $Device.Manufactuer 
 
"PNP Device Id  : {0}" -f $Device.PNPDeviceID 
"Service Name   : {0}" -f $Device.Service 
"" 
} # End of ForEach 
}  # End of Else 

 

Мое ваяние благо мы знаем

PNPDeviceID

Enable nmap in zabbix — не закончена

visudo
1. Sudo: sorry, you must have a tty to run sudo
Добавить комментарий
sudo: sorry, you must have a tty to run sudo это достаточно распространенная ошибка, если вы пытаетесь выполнить команду в скрипте от другого пользователя при помощи sudo.

Дело в том, что по умолчанию, sudo, может быть запущен только если пользователь был залогинен с реальным tty. Для того, что бы исправить положение, достаточно отредактировать ваш файл /etc/sudoers и закоментировать строку Default requiretty:
#Default requiretty

Меняем Defaults !visiblepw на Defaults visiblepw

2. zabbix ALL=(ALL) NOPASSWD: /usr/bin/nmap (Centos 6)
или echo «zabbix ALL=(ALL:ALL) NOPASSWD:/usr/bin/nmap» >> /etc/sudoers ( Debian wheezy)