Архив рубрики: *nix

CentOS Windows Virtio Drivers — драйвера дисковых устройств

Добрался я до установки домашнего сервера с виртуализацией KVM. На нем крутится windows Server, и подключен отдельный диск для файлопомойки. Чтобы поставить драйвера виртуальных дисков в windows, нужно поставить пакет virtIO-win на хост машине.

Подлючаем репозиторий:

1
# wget https://fedorapeople.org/groups/virt/virtio-win/virtio-win.repo -O /etc/yum.repos.d/virtio-win.repo
# wget https://fedorapeople.org/groups/virt/virtio-win/virtio-win.repo -O /etc/yum.repos.d/virtio-win.repo

Устанавливаем virtio-win:

1
# yum install virtio-win
# yum install virtio-win

Нужный нам образ лежит в папке /usr/share/virtio-win/. Монтируем его в виртуальный CD-ROM гостевой машины и ставим с него драйвера виртуального жесткого диска.

На хост машине смотрим где диск который нам нужен:

1
2
3
4
5
6
7
8
[root@serverVirt /]# fdisk -l
 
Диск /dev/sda: 1000.2 ГБ, 1000204886016 байт
255 heads, 63 sectors/track, 121601 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000721bb
[root@serverVirt /]# fdisk -l

Диск /dev/sda: 1000.2 ГБ, 1000204886016 байт
255 heads, 63 sectors/track, 121601 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000721bb

И подключаем его к гостевой машине:
2015-11-30_125432

Готово!)

Восстановление удаленных разделов. Testdisk.

Ковыряясь с созданием мультизагрузочной флешки, я таки удалил все данные с моего карманного жесткого диска. И снова судорожные поиски программ по восстановлению, снова нулевой результат…. Там же было 200Гб нужной информации, Карл! Но постойте! Была же программа, которая выручала меня не один раз, со сто процентным результатом. Да, вот она — testdisk.

Грузимся с диска или флешки. Далее по пунктам:

1. Выбираем диск, жмем Proceed
2. Выбираем тип файловой системы. Если раздел Windows, выбираем Intel
3. Нажимаем Analyze для анализа жёсткого диска
4а. Жмём Quick Search
4б. Если при быстром поиске ничего не найдено, выбираем Deep Search
5. И вот он нашел удаленный раздел. Клавишами <> на клавиатуре надо выбрать тип раздела — Primary, Logical итд.
Клавишей P, можно посмотреть файлы в найденных разделах.
Enter
6. В следующем окне жмем write. Потом YES. Выходим из программы Q

После перезагрузки, все файлы на диске отображаются как и прежде.
При случайном или аварийном удалении, восстановить фалы и разделы можно только если на диск ничего не записывалось поверх. Т.е. после удаления, нужно отключить диск от компьютера и начать восстановление.

Настройка cron на openWRT

Настройка

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

1
# touch /etc/crontabs/root
# touch /etc/crontabs/root

Создаём символическую ссылку на файл crontab:

1
# ln -sf /etc/crontabs/root /etc/crontab
# ln -sf /etc/crontabs/root /etc/crontab

это позволит ссылаться на crontab используя /etc/crontab.

Стартуем сервис и включаем автозагрузку

1
2
# /etc/init.d/cron start
# /etc/init.d/cron enable
# /etc/init.d/cron start
# /etc/init.d/cron enable

Проверяем успешный запуск крона в системном логе:

1
# logread
# logread

В последней строке должно быть что то вроде:

1
Oct 14 09:07:57 gate cron.info crond[7727]: crond: crond (busybox 1.19.4) started, log level 8
Oct 14 09:07:57 gate cron.info crond[7727]: crond: crond (busybox 1.19.4) started, log level 8

Использование

Теперь, когда вы cron настроен и работает, можно запускать любые задачи по расписанию. Просто добавьте запись в /etc/crontabs/root.

Например, если нужно перезапустить wifi интерфейс(radio0) ежедневно в 06:30, добавляем в кронтаб:

1
30 06 * * * wifi restart
30 06 * * * wifi restart

или указываем путь к своему скрипту.

Перезагружаем сервис для сохранения изменений:

1
# /etc/init.d/cron restart
# /etc/init.d/cron restart

Скрипт проверки свободного места с оповещением по e-mail

Скрипт проверяет остаток места по указанному лимиту и отсылает на почту предупреждение

1
2
3
4
5
6
7
8
9
10
#выводим остаток места тома
space=`df -h | grep /dev/vda | awk ' {print $4} ' | sed 's/G//'`
#лимит в Gb
limit=1
#проверяем остаток к лимиту
if (( $(bc <<< "$space <= $limit") == 1 ))
#шлем e-mail если меньше
then
echo "Warning! Disk Space is full. Avalible space $space Gb" | mail -s "Disk notification" you@email.ru
fi
#выводим остаток места тома
space=`df -h | grep /dev/vda | awk ' {print $4} ' | sed 's/G//'`
#лимит в Gb
limit=1
#проверяем остаток к лимиту
if (( $(bc <<< "$space <= $limit") == 1 ))
#шлем e-mail если меньше
then
echo "Warning! Disk Space is full. Avalible space $space Gb" | mail -s "Disk notification" you@email.ru
fi

Запускаем в cron по необходимости. /dev/vda и you@email.ru меняем на свои.

Квоты на CentOS и Vesta

Для включения квот

1
 sudo /usr/local/vesta/bin/v-add-sys-quota
 sudo /usr/local/vesta/bin/v-add-sys-quota

Для автоматического обновления квот скрипт для запуска в cron:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/bin/bash
# info: update user statistics
# options: USER
#
# Function logs user parameters into statistics database.
 
 
#----------------------------------------------------------#
#                    Variable&Function                     #
#----------------------------------------------------------#
 
# Argument defenition
user=$1
 
# Importing system enviroment  as we run this script
#       mostly by cron wich not read it by itself
source /etc/profile
 
# Includes
source $VESTA/func/main.sh
source $VESTA/func/domain.sh
source $VESTA/conf/vesta.conf
 
 
#----------------------------------------------------------#
#                       Action                             #
#----------------------------------------------------------#
 
# Creating user_list
if [ -z "$user" ]; then
    user_list=$(ls $VESTA/data/users)
else
    user_list="$user"
fi
 
# Updating sys quotas
for user in $user_list; do
    QUOTA_UPDATE=$VESTA/bin/v-update-user-quota
    sudo ${QUOTA_UPDATE} $user
done
 
exit
#!/bin/bash
# info: update user statistics
# options: USER
#
# Function logs user parameters into statistics database.


#----------------------------------------------------------#
#                    Variable&Function                     #
#----------------------------------------------------------#

# Argument defenition
user=$1

# Importing system enviroment  as we run this script
#       mostly by cron wich not read it by itself
source /etc/profile

# Includes
source $VESTA/func/main.sh
source $VESTA/func/domain.sh
source $VESTA/conf/vesta.conf


#----------------------------------------------------------#
#                       Action                             #
#----------------------------------------------------------#

# Creating user_list
if [ -z "$user" ]; then
    user_list=$(ls $VESTA/data/users)
else
    user_list="$user"
fi

# Updating sys quotas
for user in $user_list; do
    QUOTA_UPDATE=$VESTA/bin/v-update-user-quota
    sudo ${QUOTA_UPDATE} $user
done

exit

Centos монтирование webdav на примере 4shared

Сначала надо установить пакет libproxy:

для x64

1
 yum install libproxy.x86_64
 yum install libproxy.x86_64

для i686

1
 yum install libproxy.i686
 yum install libproxy.i686

Далее скачаем rpm davfs2 и связанные пакеты:

для  x64:

1
2
3
wget http://pkgs.repoforge.org/davfs2/davfs2-1.4.6-1.el6.rf.x86_64.rpm
wget ftp://dropbox.cloudlinux.com/pub/psbm/6.4/os/x86_64/RPMS/neon-0.29.3-2.el6.x86_64.rpm
wget http://ftp.pbone.net/mirror/ftp.scientificlinux.org/linux/scientific/6.2/x86_64/os/Packages/pakchois-0.4-3.2.el6.x86_64.rpm
wget http://pkgs.repoforge.org/davfs2/davfs2-1.4.6-1.el6.rf.x86_64.rpm
wget ftp://dropbox.cloudlinux.com/pub/psbm/6.4/os/x86_64/RPMS/neon-0.29.3-2.el6.x86_64.rpm
wget http://ftp.pbone.net/mirror/ftp.scientificlinux.org/linux/scientific/6.2/x86_64/os/Packages/pakchois-0.4-3.2.el6.x86_64.rpm

для i686

1
2
3
wget http://pkgs.repoforge.org/davfs2/davfs2-1.4.6-1.el6.rf.i686.rpm
wget ftp.scientificlinux.org/linux/scientific/6.4/x86_64/os/Packages/neon-0.29.3-2.el6.i686.rpm
wget http://mirror.centos.org/centos/6/os/i386/Packages/pakchois-0.4-3.2.el6.i686.rpm
wget http://pkgs.repoforge.org/davfs2/davfs2-1.4.6-1.el6.rf.i686.rpm
wget ftp.scientificlinux.org/linux/scientific/6.4/x86_64/os/Packages/neon-0.29.3-2.el6.i686.rpm
wget http://mirror.centos.org/centos/6/os/i386/Packages/pakchois-0.4-3.2.el6.i686.rpm

Install:

для x64

1
 rpm -i davfs2-1.4.6-1.el6.rf.x86_64.rpm neon-0.29.3-2.el6.x86_64.rpm pakchois-0.4-3.2.el6.x86_64.rpm
 rpm -i davfs2-1.4.6-1.el6.rf.x86_64.rpm neon-0.29.3-2.el6.x86_64.rpm pakchois-0.4-3.2.el6.x86_64.rpm

для i686

1
rpm -i davfs2-1.4.6-1.el6.rf.i686.rpm neon-0.29.3-2.el6.i686.rpm pakchois-0.4-3.2.el6.i686.rpmwget http://pkgs.repoforge.org/davfs2/davfs2-1.4.6-1.el6.rf.i686.rpm
rpm -i davfs2-1.4.6-1.el6.rf.i686.rpm neon-0.29.3-2.el6.i686.rpm pakchois-0.4-3.2.el6.i686.rpmwget http://pkgs.repoforge.org/davfs2/davfs2-1.4.6-1.el6.rf.i686.rpm

Создаем точку монтирования:

1
mkdir /mnt/4shared
mkdir /mnt/4shared

Монтируем диск

1
2
3
4
5
6
7
mount -t davfs https://webdav.4shared.com /mnt/4shared/
Please enter the username to authenticate with server
https://webdav.4shared.com  or hit enter for none.
Username: username@mail.com
Please enter the password to authenticate user username  with server
https://webdav.4shared.com  or hit enter for none.
Password:
mount -t davfs https://webdav.4shared.com /mnt/4shared/
Please enter the username to authenticate with server
https://webdav.4shared.com  or hit enter for none.
Username: username@mail.com
Please enter the password to authenticate user username  with server
https://webdav.4shared.com  or hit enter for none.
Password:

!при этом в качестве логина используем адрес почты при регистрации, а не просто логин!

Сохраняем пароль

чтобы не набирать его каждый раз, в файле 

1
vi /etc/davfs2/secrets
vi /etc/davfs2/secrets

просываем пароль в виде «точка монтирования пользователь пароль» 

1
/mnt/4shared username pass
/mnt/4shared username pass

 

Error: Problem communicating with Copy cloud.

За лето товарищи поменяли агент, и начала выскакивать ошибка, при попытки залить на облако что либо.

Удаляем старый клиент

1
2
cd /tmp
rm Copy.tgz
cd /tmp
rm Copy.tgz

Скачиваем свежий и распаковываем

1
2
 wget https://copy.com/install/linux/Copy.tgz
tar -xvf Copy.tgz
 wget https://copy.com/install/linux/Copy.tgz
tar -xvf Copy.tgz

Изменение порта ssh CentOS

1
vi /etc/ssh/sshd_config
vi /etc/ssh/sshd_config

Найти строку Port 22, если закоментирована, убрать комент и поменять на нужный порт

Не забыть поменять порт в фаерволе

Перезапускаем ssh

1
/etc/init.d/sshd restart
/etc/init.d/sshd restart

Проверка

1
netstat -anp | grep ssh
netstat -anp | grep ssh

Переключение раскладки LXDE

1
sudo gedit /etc/xdg/lxsession/LXDE/autostart
sudo gedit /etc/xdg/lxsession/LXDE/autostart

Пишем в конец

1
@setxkbmap -option grp:switch,grp:ctrl_shift_toggle,grp_led:scroll us,ru
@setxkbmap -option grp:switch,grp:ctrl_shift_toggle,grp_led:scroll us,ru

Save!