Посоветуйте какой-нибудь недорогой SATA II контроллер с интерфейсом PCI-E (8/4/1). Такой, чтобы на RHEL4 встал без напильника и проприетарных драйверов. RAID не нужен. 2 внутренних порта достаточно ( если ещё и с внешними, так совсем хорошо ).
Виртуальная машина нужна такая, чтобы запускалась без рута, без модулей ядра, без графического режима.
Соответственно стою перед выбором: qemu или bochs.
Ёмкость сервера ~1Tb.
Основная проблема, с которой столкнулся - как подключиться из дочерней ОС к ФС основной ОС с минимальным ущербом для безопасности. Засовывать терабайт в образ как-то не очень хочется.
Возникла необходимость реализовать следующую схему:
Программа передатчик -> разделяемая память -> программа приёмник.
Само собой синхронизация реализована на семафорах.
Программа приёмник должна работать следующим образом:
1) ~3 секунды висит на семафоре (semop)
2) делает некоторые опрерации, если от программы передатчика нет данных
2') если данные пришли, выполнить другие операции
3) вернуться к пункту 1)
Файл:
возможные строки
//comment
dsfdsfsdfds //comment
sfsdfdsfds "//nocomment"
dfgdgdgfd "//nocomment" //comment
//comment dfgdfdf "// part of comment " dfgdgdfg "//part of comment"
ну и т. д. и т. п. насколько фантазии хватит у C программиста.
комментариев /* */ нету
как написать регулярное выражение, выберающее такие строки?
Есть документ doc.prev:
....
BLOCK 1 BEGIN
.....
BLOCK 1 END
.....
BLOCK 2 BEGIN
.....
BLOCK 2 END
.....
вложенных блоков нет
строки вида BLOCK X BEGIN/END уникальны во всём документе
в документ вносят изменения между строк BLOCK 1 BEGIN/END и обзывают doc.now:
.....
BLOCK 1 BEGIN
changed
BLOCK 1 END
......
далее делают:
diff -????? doc.prev doc.now > patch1 - в ключах и есть вопрос
документ doc.now стирают
Далее в документ doc.prev вносят ещё много изменений , НО не между строк
BLOCK 1 BEGIN
BLOCK 1 END
изменения могут быть как малыми так и меняющие всё кроме того что находится между BLOCK 1 BEGIN/END
Через какое-то время возникает необходимость сделать:
patch doc.prev < patch1
После этого надо в doc.prev получить:
......
какие-то данные
BLOCK 1 BEGIN
changed
BLOCK 1 END
ещё какие-то данные
....
Вопрос:
Какие ключи надо задать diff, чтобы получить патч, однозначно опирающийся только на строки BLOCK 1 BEGIN; BLOCK 1 END
Надо, чтобы работало такое от клиента:
ssh -l username host.example.com -L 3306:127.0.0.1:3306
Но при этом чтобы пользователю не давался шелл на сервере из файла /etc/passwd
т.е. надо пробросить порт через ssh
Если прописать в /etc/passwd: /sbin/nologin для пользователя, то не пускает.
Если самому написать программку небольшую, которая выводит
'Press Enter to finish session' и ждёт нажатия Enter а потом сама выходит, то работает как надо.
А нет ли какого-нибудь стандартного способа решения такой задачи?
Сейчас бэкап делается через создание snapshotов средствами LVM2 и далее tar -cf ...
gzip -9 ...
Хочу внедрить схему с инкреметным копированием командой dump.
Всвязи с этим возник вопрос: у связки LVM2 snapshot + dump есть ли какие-нибудь "неочевидные" особенности? Если кто сталкивался и использовал, напишите пожалуйста.
Есть программа ( даже не программа, а комплекс состоящий из исходников, документации, тестов, примеров ну и т. д. )
Программа специфическая.
Для каждого клиента она немного разная. Для одного предположим десяток переменных, для другого есть ещё одиннадцатая и соответсвенно маленький кусочек, вставляемый в функцию специально для обработки одиннадцатой переменной. Для одного есть данный кусок файла Readme, для другого нет ну и т. д. Пока таких различий было мало и было мало клиентов, приемлемо было использование условной компиляции, но с возросшим числом клиентов и постепенным совершенствованием программы число #ifов возросло просто до неприличия и программа утратила читабельность и стало сложно её отлаживать.
К тому же не всегда можно "обновлять" программу у клиента. Т. е. нормальной является ситуация когда у одного клиента в программе остался баг (и не исправляется специально), у другого данный баг исправлен и добавлен десяток новых свойств. Но в общих чертах программа одна и развивается как единое целое. Поддерживать надо обоих. Специфика области.
Дерево держит CVS.
Вопрос: какие есть альтернативы условной компиляции для такой ситуации? Какие (желательно проверенные временем) варианты можно использовать?
Как в рамках одного дерева исходников поддерживать несколько версий программы одновременно? Причём с минимальной разницей в одну строку кода?
Есть машина с Linuxом
eth0 : ip=192.168.0.247
она подключена к свитчу
к свитчу также подключены роутер1 (GW1) и роутер2 (GW2)
IP_GW1 = 192.168.0.250
IP_GW2 = 192.168.0.240
оба роутера подсоединены к интернету
соответсвенно у них внешние адреса
IP_out1 = x.x.x.x
IP_out2 = y.y.y.y
сейчас на машине с линухом есть маршрут:
route add -net 0.0.0.0/0 gw 192.168.0.250 dev eth0
соответсвенно роутер1 выступает дефолтным гетвеем
На роутере1 прокинут порт 22.
(там через веб интерфейс, но так думаю понятней)
iptables -t nat -s 0.0.0.0/0 -p tcp --dport 22 -j DNAT 192.168.0.247
Соответсвенно извне есть доступ по SSH.
ssh -l user -p 22 x.x.x.x
Я хочу, чтобы доступ был и по
ssh -l user -p 22 y.y.y.y
для этого на роутере2 я прописал
iptables -t nat -s 0.0.0.0/0 -p tcp --dport 22 -j DNTA 192.168.0.247
на линукс машине я попробовал прописать:
route add -net 0.0.0.0/0 gw 192.168.0.240 dev eth0
но доступ получается только по x.x.x.x ИЛИ y.y.y.y
т.е. если я отключаю роутер1, удаётся получить доступ по адресу y.y.y.y
если отключаю роутер2, то через некоторе время получаю доступ по x.x.x.x
но вместе никак. Такое ощущение, что GW становится тот, чья скорость выше, а другой испольуется только в случае недоступности другого.
Вопрос: как сделать так, чтобы пакеты шли на тот GW, с которого был запрос?
есть каталог /mnt/sdg1/home/linuxuser
и есть каталог /home/linuxuser
вопрос:
какие права доступа должны быть на каждом из этих каталогов для монтирования командой (из под root):
mount --bind /mnt/sdg1/home/linuxuser /home/linuxuser
и возможности полного и исключительного доступа пользователя linuxuser к своему домашнему каталогу /home/linuxuser ?
Есть:
Сеть, из которой народ ходит в инет (винда, линукс).
Набор скриптов, который успешно справляется с подсчётом трафика. Базируется всё на iptables.
Соответсвенно считается по принципу: iptables -s local_users_ip -d ! localnet -j count на исходящий и наоборот на входящий.
Надо:
настроить pptpd так чтобы народ как и прежде мог ходить в инет, получая те же Ipшники при установлении VPN туннеля и чтобы их трафик можно было бы считать теми же скриптами.
Вопрос:
Как привязать имя пользователя к конкретному ip адресу?
Объясните пожалуйста, если я в CentOS4.2 помещу в chroot окружение ну например ProFTPd (его нет в политике по умолчанию, только как пример), то будет ли в случае взлома ProFTPd у хакера возможность выйти из chroot окружения (ну если к примеру он взломает какую-нибудь SUID или ещё как) или политика, применяемая к chroot SElinuxом по умолчанию предотвратит возможность выхода из chroot?
Политика - targeted. Настройки selinux по дефолту.
Есть группа томов vg00
В ней логические тома:
/dev/vg00/root
/dev/vg00/home
/dev/vg00/usr
/dev/vg00/var
/dev/vg00/tmp
названия логических томов думаю говорят сами за себя.
Вопрос: можно ли сделать точно ОДНОВРЕМЕННО snapshot(ы) всех логических томов в группе томов vg00?
Нужно для снятия правильного полного backupа системы.
Ядро 2.6.9 дефолтное CentOS2
Нужна поддержка -j TTL в iptables
можно как-нибудь без пересборки ядра организовать?
просто хочется сохранить возможность по yum update в актуальном состоянии пребывать :) а не каждый раз для обновления ядра кучу всего тестить и перебирать :)
Есть два HDD по 80 Gb и один 250 Gb
Хочу поставить CentOS 4.2 на диск {2x80 Gb} находящиеся в SoftRAID 1 массиве да к тому же потом снимать с этого диска snapshotы на 250 гиговый диск. Возможно ли это сконфигурировать на стадии установки?
Если да, то как?