LINUX.ORG.RU

Сообщения Vlad-76

 

Какой XML парсер на perl лучше всего подходит для задачи или другой способ решения ?

Есть конфиг файл для freeswitch

<include>
  <extension name="public_did_10012345">
    <condition field="destination_number" expression="^(10012345)$">
    </condition>
  </extension>
  <extension name="public_did_1002">
    <condition field="destination_number" expression="^(1002)$">
      <action application="transfer" data="$1 XML internet-trunks-1002"/>
    </condition>
  </extension>
  <extension name="public_did_1003">
    <condition field="destination_number" expression="^(1003)$">
      <action application="transfer" data="$1 XML internet-trunks-1003"/>
    </condition>
  </extension>
  <extension name="public_did_1004">
    <condition field="destination_number" expression="^(1004)$">
      <action application="transfer" data="$1 XML internet-trunks-1004"/>
    </condition>
  </extension>
  <extension name="public_did_1005">
    <condition field="destination_number" expression="^(1005)$">
      <action application="transfer" data="$1 XML internet-trunks-1004"/>
    </condition>
  </extension>

</include>
Как мне его перегнать в хэш хешей или массив хешей чтобы можно было обращаться к элементам по номеру или по атрибуту элемента name или др.
Т.е нужно сконвертить этот XML в несложную структурку чтобы удобно работать со значениями указав индексы. Залез в модуль XML::DOM но там такого нет или я не могу его готовить. Или посоветуйте как эффективно решить данную задачу.
Может быть и парсер не нужен.
на выходе нужно получить файл со строками вида
internet-trunks-1004;1004,1005
internet-trunks-1003;1003
internet-trunks-1002;1002
;10012345
т.е. в одной строке нужно связать контексты со списком обрабатываемых в нем номеров

Vlad-76
()

накосячил с репозиториями и пакетами в proxmox3.1 (2.3) (debian 6.0.7). HELP

proxmox3.1 был настроен на репозитории wheezy, в процессе решения проблемы с iscsi модулем ядра, удалил жизненно важные пакеты proxmox
менял список репов в /etc/apt/etc/apt/sources.list разок переключился между squeeze и wheezy, чтобы установить заголовки ядра, какие команды apt-get давал уже не помню
В результате получил

root@proxmox1:/etc/apt#  apt-get install iscsitarget iscsitarget-dkms
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
  javascript-common libanyevent-http-perl libanyevent-perl libblas3gf libboost-system1.49.0 libjs-jquery libleveldb1 liblinear1
  libsnappy1 libusbredirparser1 pve-libspice-server1 python-crypto python-flask python-gevent python-greenlet python-jinja2
  python-markupsafe python-oauthlib python-pkg-resources python-requests python-six python-werkzeug socat wwwconfig-common
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  apt binutils cpp-4.3 cpp-4.4 dkms fakeroot gcc gcc-4.3 gcc-4.3-base gcc-4.4 gcc-4.4-base libc-bin libc-dev-bin libc6 libc6-dev
  libcwidget3 libgcc1 libgfortran3 libgmp3c2 libgomp1 libldap-2.4-2 libsigc++-2.0-0c2a libstdc++6 libxapian22
  linux-headers-2.6-amd64 linux-headers-2.6.32-5-amd64 linux-headers-2.6.32-5-common linux-kbuild-2.6.32 linux-libc-dev locales
  manpages-dev menu
Suggested packages:
  dpkg-dev apt-doc lzma binutils-doc gcc-4.3-locales gcc-4.4-locales gcc-multilib autoconf automake1.9 libtool flex bison gdb
  gcc-doc gcc-4.3-multilib libmudflap0-4.3-dev gcc-4.3-doc libgcc1-dbg libgomp1-dbg libmudflap0-dbg gcc-4.4-multilib
  libmudflap0-4.4-dev gcc-4.4-doc libcloog-ppl0 libppl-c2 libppl7 iscsitarget-source glibc-doc libcwidget-dev xapian-tools
  menu-l10n gksu kdebase-bin kdebase-runtime ktsuss sux
Recommended packages:
  iscsitarget-module
The following packages will be REMOVED:
  apt-listchanges apt-transport-https apt-utils aptitude ceph-common libapt-inst1.5 libapt-pkg-perl libapt-pkg4.12
  libboost-thread1.49.0 libept1.4.12 librados2 librbd1 nmap ntp proxmox-ve-2.6.32 pve-manager pve-qemu-kvm python-apt python-ceph
  qemu-server
The following NEW packages will be installed:
  cpp-4.3 cpp-4.4 dkms fakeroot gcc gcc-4.3 gcc-4.3-base gcc-4.4 gcc-4.4-base iscsitarget-dkms libc-dev-bin libc6-dev libgmp3c2
  libgomp1 linux-headers-2.6-amd64 linux-headers-2.6.32-5-amd64 linux-headers-2.6.32-5-common linux-kbuild-2.6.32 linux-libc-dev
  manpages-dev
The following packages will be DOWNGRADED:
  apt binutils iscsitarget libc-bin libc6 libcwidget3 libgcc1 libgfortran3 libldap-2.4-2 libsigc++-2.0-0c2a libstdc++6 libxapian22
  locales menu
0 upgraded, 20 newly installed, 14 downgraded, 20 to remove and 377 not upgraded.
Need to get 42.2 MB of archives.
After this operation, 1,936 kB of additional disk space will be used.
Do you want to continue [Y/n]? Y
Get:1 http://security.debian.org/ squeeze/updates/main linux-libc-dev amd64 2.6.32-48squeeze3 [843 kB]
Get:2 http://ftp.debian.org/debian/ squeeze/main libldap-2.4-2 amd64 2.4.23-7.3 [211 kB]
Get:3 http://ftp.debian.org/debian/ squeeze/main locales all 2.11.3-4 [4,761 kB]
Get:4 http://security.debian.org/ squeeze/updates/main linux-headers-2.6.32-5-common amd64 2.6.32-48squeeze3 [3,908 kB]
Get:5 http://ftp.debian.org/debian/ squeeze/main libc-bin amd64 2.11.3-4 [749 kB]
Get:6 http://security.debian.org/ squeeze/updates/main linux-headers-2.6.32-5-amd64 amd64 2.6.32-48squeeze3 [538 kB]
Get:7 http://ftp.debian.org/debian/ squeeze/main libc6 amd64 2.11.3-4 [4,282 kB]
Get:8 http://ftp.debian.org/debian/ squeeze/main gcc-4.4-base amd64 4.4.5-8 [123 kB]
Get:9 http://ftp.debian.org/debian/ squeeze/main libgcc1 amd64 1:4.4.5-8 [45.0 kB]
Get:10 http://ftp.debian.org/debian/ squeeze/main binutils amd64 2.20.1-16 [3,993 kB]
Get:11 http://ftp.debian.org/debian/ squeeze/main libsigc++-2.0-0c2a amd64 2.2.4.2-1 [39.5 kB]
Get:12 http://ftp.debian.org/debian/ squeeze/main libcwidget3 amd64 0.5.16-3 [308 kB]
Get:13 http://ftp.debian.org/debian/ squeeze/main libxapian22 amd64 1.2.3-2 [1,150 kB]
Get:14 http://ftp.debian.org/debian/ squeeze/main menu amd64 2.1.44 [459 kB]
Get:15 http://ftp.debian.org/debian/ squeeze/main apt amd64 0.8.10.3+squeeze1 [2,174 kB]
Get:16 http://ftp.debian.org/debian/ squeeze/main libstdc++6 amd64 4.4.5-8 [341 kB]
Get:17 http://ftp.debian.org/debian/ squeeze/main gcc-4.3-base amd64 4.3.5-4 [110 kB]
Get:18 http://ftp.debian.org/debian/ squeeze/main libgmp3c2 amd64 2:4.3.2+dfsg-1 [313 kB]
Get:19 http://ftp.debian.org/debian/ squeeze/main cpp-4.3 amd64 4.3.5-4 [3,349 kB]
Get:20 http://ftp.debian.org/debian/ squeeze/main cpp-4.4 amd64 4.4.5-8 [3,873 kB]
Get:21 http://ftp.debian.org/debian/ squeeze/main libgfortran3 amd64 4.4.5-8 [291 kB]
Get:22 http://ftp.debian.org/debian/ squeeze/main libgomp1 amd64 4.4.5-8 [25.3 kB]
Get:23 http://ftp.debian.org/debian/ squeeze/main gcc-4.4 amd64 4.4.5-8 [2,688 kB]
Get:24 http://ftp.debian.org/debian/ squeeze/main gcc amd64 4:4.4.5-1 [4,970 B]
Get:25 http://ftp.debian.org/debian/ squeeze/main dkms all 2.1.1.2-5 [71.3 kB]
Get:26 http://ftp.debian.org/debian/ squeeze/main fakeroot amd64 1.14.4-1 [100 kB]
Get:27 http://ftp.debian.org/debian/ squeeze/main gcc-4.3 amd64 4.3.5-4 [2,604 kB]
Get:28 http://ftp.debian.org/debian/ squeeze/main iscsitarget amd64 1.4.20.2-1 [75.4 kB]
Get:29 http://ftp.debian.org/debian/ squeeze/main iscsitarget-dkms all 1.4.20.2-1 [70.9 kB]
Get:30 http://ftp.debian.org/debian/ squeeze/main libc-dev-bin amd64 2.11.3-4 [210 kB]
Get:31 http://ftp.debian.org/debian/ squeeze/main libc6-dev amd64 2.11.3-4 [2,593 kB]
Get:32 http://ftp.debian.org/debian/ squeeze/main linux-kbuild-2.6.32 amd64 2.6.32-1 [238 kB]
Get:33 http://ftp.debian.org/debian/ squeeze/main linux-headers-2.6-amd64 amd64 2.6.32+29 [3,188 B]
Get:34 http://ftp.debian.org/debian/ squeeze/main manpages-dev all 3.27-1 [1,639 kB]
Fetched 42.2 MB in 1min 33s (453 kB/s)
Extracting templates from packages: 100%
Preconfiguring packages ...
(Reading database ... 39177 files and directories currently installed.)
Removing apt-listchanges ...
Removing proxmox-ve-2.6.32 ...
Removing pve-manager ...
Removing apt-transport-https ...
Removing apt-utils ...
Removing aptitude ...
Removing qemu-server ...
Removing pve-qemu-kvm ...
Removing ceph-common ...
Removing python-apt ...
Removing libapt-inst1.5:amd64 ...
Removing libapt-pkg-perl ...
Removing libept1.4.12 ...
Processing triggers for man-db ...
Processing triggers for menu ...
dpkg: warning: downgrading libldap-2.4-2:amd64 from 2.4.31-1+nmu2 to 2.4.23-7.3
(Reading database ... 38191 files and directories currently installed.)
Preparing to replace libldap-2.4-2:amd64 2.4.31-1+nmu2 (using .../libldap-2.4-2_2.4.23-7.3_amd64.deb) ...
Unpacking replacement libldap-2.4-2 ...
Processing triggers for man-db ...
(Reading database ... 38188 files and directories currently installed.)
Removing ntp ...
Stopping NTP server: ntpd.
Processing triggers for man-db ...
dpkg: warning: downgrading locales from 2.13-38 to 2.11.3-4
(Reading database ... 38162 files and directories currently installed.)
Preparing to replace locales 2.13-38 (using .../locales_2.11.3-4_all.deb) ...
Unpacking replacement locales ...
dpkg: warning: downgrading libc-bin from 2.13-38 to 2.11.3-4
Preparing to replace libc-bin 2.13-38 (using .../libc-bin_2.11.3-4_amd64.deb) ...
Unpacking replacement libc-bin ...
Replaced by files in installed package manpages ...
Processing triggers for man-db ...
Setting up libc-bin (2.11.3-4) ...
Installing new version of config file /etc/bindresvport.blacklist ...
dpkg: warning: downgrading libc6:amd64 from 2.13-38 to 2.11.3-4
(Reading database ... 38137 files and directories currently installed.)
Preparing to replace libc6:amd64 2.13-38 (using .../libc6_2.11.3-4_amd64.deb) ...
Unpacking replacement libc6 ...
Setting up libc6 (2.11.3-4) ...
Selecting previously unselected package gcc-4.4-base.
(Reading database ... 38134 files and directories currently installed.)
Unpacking gcc-4.4-base (from .../gcc-4.4-base_4.4.5-8_amd64.deb) ...
Setting up gcc-4.4-base (4.4.5-8) ...
dpkg: warning: downgrading libgcc1:amd64 from 1:4.7.2-5 to 1:4.4.5-8
(Reading database ... 38142 files and directories currently installed.)
Preparing to replace libgcc1:amd64 1:4.7.2-5 (using .../libgcc1_1%3a4.4.5-8_amd64.deb) ...
Unpacking replacement libgcc1 ...
Setting up libgcc1 (1:4.4.5-8) ...
dpkg: warning: downgrading binutils from 2.22-8 to 2.20.1-16
(Reading database ... 38142 files and directories currently installed.)
Preparing to replace binutils 2.22-8 (using .../binutils_2.20.1-16_amd64.deb) ...
Unpacking replacement binutils ...
Processing triggers for man-db ...
(Reading database ... 38099 files and directories currently installed.)
Removing python-ceph ...
Removing librbd1 ...
Processing triggers for man-db ...
dpkg: warning: downgrading libsigc++-2.0-0c2a:amd64 from 2.2.10-0.2 to 2.2.4.2-1
(Reading database ... 38075 files and directories currently installed.)
Preparing to replace libsigc++-2.0-0c2a:amd64 2.2.10-0.2 (using .../libsigc++-2.0-0c2a_2.2.4.2-1_amd64.deb) ...
Unpacking replacement libsigc++-2.0-0c2a ...
(Reading database ... 38073 files and directories currently installed.)
Removing nmap ...
Processing triggers for man-db ...
dpkg: warning: downgrading libcwidget3 from 0.5.16-3.4 to 0.5.16-3
(Reading database ... 37551 files and directories currently installed.)
Preparing to replace libcwidget3 0.5.16-3.4 (using .../libcwidget3_0.5.16-3_amd64.deb) ...
Unpacking replacement libcwidget3 ...
(Reading database ... 37509 files and directories currently installed.)
Removing librados2 ...
dpkg: warning: downgrading libxapian22 from 1.2.12-2 to 1.2.3-2
(Reading database ... 37506 files and directories currently installed.)
Preparing to replace libxapian22 1.2.12-2 (using .../libxapian22_1.2.3-2_amd64.deb) ...
Unpacking replacement libxapian22 ...
(Reading database ... 37504 files and directories currently installed.)
Removing libboost-thread1.49.0 ...
dpkg: warning: downgrading menu from 2.1.46 to 2.1.44
(Reading database ... 37499 files and directories currently installed.)
Preparing to replace menu 2.1.46 (using .../archives/menu_2.1.44_amd64.deb) ...
Unpacking replacement menu ...
dpkg: warning: downgrading apt from 0.9.7.9 to 0.8.10.3+squeeze1
Preparing to replace apt 0.9.7.9 (using .../apt_0.8.10.3+squeeze1_amd64.deb) ...
Unpacking replacement apt ...
Processing triggers for install-info ...
Processing triggers for man-db ...
dpkg: dependency problems prevent configuration of apt:
 libapt-pkg4.12:amd64 (0.9.7.9) breaks apt (<< 0.9.4~) and is installed.
  Version of apt to be configured is 0.8.10.3+squeeze1.

dpkg: error processing apt (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 apt
E: Sub-process /usr/bin/dpkg returned an error code (1)

Пытаюсь установить снесенные пакеты, но теперь выходит ошибка
root@proxmox1:/var/cache/apt/archives# apt-get install apt-transport-https
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 libapt-pkg4.12 : Breaks: apt (< 0.9.4~) but 0.8.10.3+squeeze1 is to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

не пойму что вызывает эту ошибку, ну и как вылечить? Прошу помощи.

еще инфа

root@proxmox1:/var/cache/apt/archives# dpkg -l | grep apt
iU  apt                              0.8.10.3+squeeze1             amd64        Advanced front-end for dpkg
rc  apt-listchanges                  2.85.11                       all          package change history notification tool
rc  aptitude                         0.6.8.2-1                     amd64        terminal-based package manager
ii  aptitude-common                  0.6.8.2-1                     all          architecture indepedent files for the aptitude package manager
rc  libapt-inst1.5:amd64             0.9.7.9                       amd64        deb package format runtime library
ii  libapt-pkg4.12:amd64             0.9.7.9                       amd64        package managment runtime library
ii  libpcap0.8:amd64                 1.3.0-1                       amd64        system interface for user-level packet capture
ii  python-apt-common                0.8.8.2                       all          Python interface to libapt-pkg (locales)
root@proxmox1:/var/cache/apt/archives# dpkg -l | grep dpkg
iU  apt                              0.8.10.3+squeeze1             amd64        Advanced front-end for dpkg
ii  dpkg                             1.16.10                       amd64        Debian package management system
root@proxmox1:/var/cache/apt/archives#

на системе которую не сломал
root@proxmox2:~# dpkg -l | grep apt
ii  apt                              0.9.7.9                       amd64        commandline package manager
ii  apt-listchanges                  2.85.11                       all          package change history notification tool
ii  apt-transport-https              0.9.7.9                       amd64        https download transport for APT
ii  apt-utils                        0.9.7.9                       amd64        package managment related utility programs
ii  aptitude                         0.6.8.2-1                     amd64        terminal-based package manager
ii  aptitude-common                  0.6.8.2-1                     all          architecture indepedent files for the aptitude package manager
ii  libapt-inst1.5:amd64             0.9.7.9                       amd64        deb package format runtime library
ii  libapt-pkg-perl                  0.1.26+b1                     amd64        Perl interface to libapt-pkg
ii  libapt-pkg4.12:amd64             0.9.7.9                       amd64        package managment runtime library
ii  libpcap0.8:amd64                 1.3.0-1                       amd64        system interface for user-level packet capture
ii  python-apt                       0.8.8.2                       amd64        Python interface to libapt-pkg
ii  python-apt-common                0.8.8.2                       all          Python interface to libapt-pkg (locales)
root@proxmox2:~#

Vlad-76
()

split brain drbd диска на proxmox 3.1 HELP

после обновления proxmox с 2.3 до 3.1 drbd диск развалился, скорее всего из за необходимой перезагрузки, т.к. обновлений в части drbd не было

виртуалки на drbd диске запущены

proxmox1

root@proxmox1:/var/log# cat /proc/drbd
version: 8.3.13 (api:88/proto:86-96)
GIT-hash: 83ca112086600faacab2f157bc5a9324f7bd7f77 build by root@sighted, 2012-10-09 12:47:51
 0: cs:StandAlone ro:Primary/Unknown ds:UpToDate/DUnknown   r-----
    ns:0 nr:0 dw:27570495 dr:824728362 al:73564 bm:6743 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:1632860
proxmox2

root@proxmox2:/etc/drbd.d# cat /proc/drbd
version: 8.3.13 (api:88/proto:86-96)
GIT-hash: 83ca112086600faacab2f157bc5a9324f7bd7f77 build by root@sighted, 2012-10-09 12:47:51
 0: cs:StandAlone ro:Secondary/Unknown ds:UpToDate/DUnknown   r-----
    ns:0 nr:0 dw:0 dr:828 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0

конфиг

# more rs0.res
resource r0 {
        protocol C;
        startup {
                wfc-timeout  180;     
                degr-wfc-timeout 60;
                become-primary-on both;
        }
        net {
                cram-hmac-alg sha1;
                shared-secret "my-secret";
                allow-two-primaries;
                after-sb-0pri discard-zero-changes;
                after-sb-1pri discard-secondary;
                after-sb-2pri disconnect;
                #data-integrity-alg crc32c;     
        }
        on proxmox1 {
                device /dev/drbd0;
                disk /dev/sdb1;
                address 192.168.100.1:7788;
                meta-disk internal;
        }
        on proxmox2 {
                device /dev/drbd0;
                disk /dev/sdb1;
                address 192.168.100.2:7788;
                meta-disk internal;
        }
}

восстанавливаю так

на proxmox2
drbdadm disconnect r0
drbdadm secondary r0
drbdadm -- --discard-my-data connect r0

на proxmox1
drbdadm connect r0

в логах нод

Aug 24 11:46:43 proxmox1 kernel: block drbd0: conn( StandAlone -> Unconnected )
Aug 24 11:46:43 proxmox1 kernel: block drbd0: Starting receiver thread (from drbd0_worker [2685])
Aug 24 11:46:43 proxmox1 kernel: block drbd0: receiver (re)started
Aug 24 11:46:43 proxmox1 kernel: block drbd0: conn( Unconnected -> WFConnection )
Aug 24 11:46:43 proxmox1 kernel: block drbd0: Handshake successful: Agreed network protocol version 96
Aug 24 11:46:43 proxmox1 kernel: block drbd0: Peer authenticated using 20 bytes of 'sha1' HMAC
Aug 24 11:46:43 proxmox1 kernel: block drbd0: conn( WFConnection -> WFReportParams )
Aug 24 11:46:43 proxmox1 kernel: block drbd0: Starting asender thread (from drbd0_receiver [72831])
Aug 24 11:46:43 proxmox1 kernel: block drbd0: data-integrity-alg: <not-used>
Aug 24 11:46:43 proxmox1 kernel: block drbd0: conn( WFReportParams -> Disconnecting )
Aug 24 11:46:43 proxmox1 kernel: block drbd0: asender terminated
Aug 24 11:46:43 proxmox1 kernel: block drbd0: Terminating asender thread
Aug 24 11:46:43 proxmox1 kernel: block drbd0: Connection closed
Aug 24 11:46:43 proxmox1 kernel: block drbd0: conn( Disconnecting -> StandAlone )
Aug 24 11:46:43 proxmox1 kernel: block drbd0: receiver terminated
Aug 24 11:46:43 proxmox1 kernel: block drbd0: Terminating receiver thread



Aug 24 10:44:49 proxmox2 kernel: block drbd0: conn( StandAlone -> Unconnected )
Aug 24 10:44:49 proxmox2 kernel: block drbd0: Starting receiver thread (from drbd0_worker [2827])
Aug 24 10:44:49 proxmox2 kernel: block drbd0: receiver (re)started
Aug 24 10:44:49 proxmox2 kernel: block drbd0: conn( Unconnected -> WFConnection )
Aug 24 11:45:34 proxmox2 kernel: block drbd0: conn( WFConnection -> Disconnecting )
Aug 24 11:45:34 proxmox2 kernel: block drbd0: Discarding network configuration.
Aug 24 11:45:34 proxmox2 kernel: block drbd0: Connection closed
Aug 24 11:45:34 proxmox2 kernel: block drbd0: conn( Disconnecting -> StandAlone )
Aug 24 11:45:34 proxmox2 kernel: block drbd0: receiver terminated
Aug 24 11:45:34 proxmox2 kernel: block drbd0: Terminating receiver thread
Aug 24 11:46:41 proxmox2 kernel: block drbd0: conn( StandAlone -> Unconnected )
Aug 24 11:46:41 proxmox2 kernel: block drbd0: Starting receiver thread (from drbd0_worker [2827])
Aug 24 11:46:41 proxmox2 kernel: block drbd0: receiver (re)started
Aug 24 11:46:41 proxmox2 kernel: block drbd0: conn( Unconnected -> WFConnection )
Aug 24 11:46:43 proxmox2 kernel: block drbd0: Handshake successful: Agreed network protocol version 96
Aug 24 11:46:43 proxmox2 kernel: block drbd0: Peer authenticated using 20 bytes of 'sha1' HMAC
Aug 24 11:46:43 proxmox2 kernel: block drbd0: conn( WFConnection -> WFReportParams )
Aug 24 11:46:43 proxmox2 kernel: block drbd0: Starting asender thread (from drbd0_receiver [39274])
Aug 24 11:46:43 proxmox2 kernel: block drbd0: data-integrity-alg: <not-used>
Aug 24 11:46:43 proxmox2 kernel: block drbd0: conn( WFReportParams -> Disconnecting )
Aug 24 11:46:43 proxmox2 kernel: block drbd0: asender terminated
Aug 24 11:46:43 proxmox2 kernel: block drbd0: Terminating asender thread
Aug 24 11:46:43 proxmox2 kernel: block drbd0: Connection closed
Aug 24 11:46:43 proxmox2 kernel: block drbd0: conn( Disconnecting -> StandAlone )
Aug 24 11:46:43 proxmox2 kernel: block drbd0: receiver terminated
Aug 24 11:46:43 proxmox2 kernel: block drbd0: Terminating receiver thread

не пойму почему не запускается

Vlad-76
()

накосячил с репозиториями и пакетами в proxmox2.3 (debian 6.0.7). HELP

два компа - две инсталляции proxmox2.3

содержимое /etc/apt/sources.list первой ноды


deb http://ftp.ru.debian.org/debian wheezy main contrib

# PVE packages provided by proxmox.com
deb http://download.proxmox.com/debian wheezy pve

# security updates
deb http://security.debian.org/ wheezy/updates main contrib

по ошибке изменил на

deb http://ftp.debian.org/debian wheezy main contrib

# PVE packages provided by proxmox.com
deb http://download.proxmox.com/debian wheezy pve

# security updates
deb http://security.debian.org/ wheezy/updates main contrib

и выполнил команду #apt-get install ntfs-3g

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  fuse fuse-utils libblkid1 libfuse2 libgnutls26 libmount1 libp11-kit0 mount multiarch-support
The following NEW packages will be installed:
  fuse libmount1 libp11-kit0 multiarch-support ntfs-3g
The following packages will be upgraded:
  fuse-utils libblkid1 libfuse2 libgnutls26 mount
5 upgraded, 5 newly installed, 0 to remove and 436 not upgraded.
Need to get 620 kB/2,156 kB of archives.
After this operation, 2,142 kB of additional disk space will be used.
Do you want to continue [Y/n]? Y
в результате на этой ноде обновился fuse до 2.9.0 со всеми зависимостями. Теперь админка proxmox на этой ноде не авторизовывает. С админки второй ноды нет доступа на первую ноду.

Ну понятно что вопрос номер один - это почему изначально было такое содержимое /etc/apt/sources.list если debian 6.0.7 это squeeze и содержимое должно было быть

deb http://ftp.ru.debian.org/debian squeeze main contrib

# PVE packages provided by proxmox.com
deb http://download.proxmox.com/debian squeeze pve

# security updates
deb http://security.debian.org/ squeeze/updates main contrib

и второй вопрос как вернуть пакеты в состояние до команды
apt-get install ntfs-3g

виртуалки пока вроде как работают (но чувствую до перезапуска). Сервер не ребутал. в /etc/pve на первой ноде пусто, на второй все на месте

Vlad-76
()

Бекапы windows машин на linux машину на уровне файлов(full+incremental), чем сделать?

Всем устраивает BackupPC, но длинные имена файлов и папок не устраивают backuppc. Нужен аналог. Посоветуйте.

Vlad-76
()

Как узнать какой процес или что грузит диск в кластере proxmox?

два обычных компа - по два SATA диска 4ТБ в каждом. два диска в drbd для KVM виртуалок. два других под системы.
Всего 8 виртуалок (sql сервер,файл сервер, два контроллера домена, теримнальный сервер,шлюз в инет,астериск и по мелочи) - 7 на одной ноде и одна на другой. drbd Primary/Primary. Загрузки нет никакой в виртуалках но диск под ними грузится на 50-75% по команде atop видно. Как понять что грузит этот диск ОСь или какой либо процесс.
Что покрутить или только SSD диск спасет ситуацию?

Vlad-76
()

Как разрешить пользователю запускать/исполнять скрипт другого пользователя, но запретить его просмотр и изменение?

Сейчас владелец перлового скрипта root.

Vlad-76
()

DNS сервер с одних IP разрешает имена с других IP нет

Провайдер своя AS свой блок адресов. DNS сервер (bind-9.3.4) является slave для зоны. При изменении зоны на мастере в файле зоны на slave появляются изменения. С консоли dns сервера и с другого сервера AS разрешение имени, которое только что добавил на мастере, происходит.
Если сделать разрешение из вне AS ки, например отсюда http://www.nslookup.su/ имя не разрешается. Если ребутнуть bind (/etc/init.d/named restart) имя начинает разрешаться.
В чем может быть проблема?

Vlad-76
()

Посоветуйте одноплатный компьютер

в серверной есть сеть на датчиках 1-WIRE http://www.elin.ru/1-Wire/?topic=systemOEM
Датчики включены в сервер - все работает. Хочу перенести эту гирлянду датчиков с сервера на одноплатный компьютер и повесить рядом с электрическим щитком т.к. главная задача это управление работой кондиционеров
Требования - наличие ethernet,USB либо RS232(в крайнем случае) + видео контроллер или терминальный порт (Второй RS232). На эту плату хочу чтобы ставился сразу какой нить дистр c Linux типа CentOS,debian (в котором есть уже поддержка 1-wire контроллеров). Установить Linux готов с флешки или как то еще стандартно, в крайнем случае накатить образ на флешку одноплатного компа. А то увязну (не хочу разбираться) в портировании на встроенный линукс драйверов и служб, готов только плату поместить в коробку вместе с БП. Хочу чтобы все мне было знакомо - для конфигурирования сетевого интерфейса, его запуска, для запуска ssh, потом перенесу все скрипты на perl. Короче не сложнее как с PC.Надежность.Дешевизна.
Есть железки подходящие для этого?

Vlad-76
()

Как сделать символическую ссылку на папку (владелец root) для доступа к файлам в ней?

есть папка с файлами /root/scripts/logs/dir1/filesХ , владелец root
есть пользователь в /home/user1

как сделать ссылку в /home/user1 на /root/scripts/logs/ чтобы пользователь user1 мог просматривать файлы /root/scripts/logs/dir1/fileХ заходя по ссылке в своей папке

владельца на созданную ссылку менял, менял владельца папки на которую ссылался, отдельную группу создавал - добавлял в нее и рута и user1, chmod 777 делал, но тщетно.
Не пойму где собака порылась...

Vlad-76
()

как на perl перекодировать строку вида «041F04300440043E04» в читабельные на консоли символы?

есть строка в виде «041F04300440043E04»

в которой по порядку идут в 16 ричке закодированные символы
041F первый символ, 0430 второй и т.д.
по ссылке http://unicode-table.com/ru/#greek-coptic находится поиск символа по 16 ричной строке
берем например два 16 ричных числа в виде строки 041F и видим что это символ русская П
Есть ли модуль для perl для преобразования таких строк в символы чтобы они на консоли (LANG=en_US.UTF-8) отображались нормально ?

Vlad-76
()

ISPconfig 3.0.5.2 не добавляет домены,зоны в зоне рф

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

ERROR

Domain name invalid.

Это бага или фича?

Vlad-76
()

Предложите решение для хостинга и почты

Сейчас есть несколько виртуалок openvz
1. виртуалка с сайтами
2. виртуалка с postfix(для хранения почты доменов/пользоватлей) + антиспам + антивирус, c правленным postfixadmin и вебинтерфейсом, квот нет часто к.л. ящик переполняет ФС и сервисы в виртуалке останавливаются со всеми вытекающими
3. Виртуалка с postfix на отправку. разрешено почту отправлять только со списка сетей,IP.

хочется собрать все это в одну виртуалку, установить в нее админку для хостинга чтобы можно было пользователей хостинга и почты заводить, рулить местом под сайты и почту (квоты) т.д. Интересует бесплатное решение админки про ispmanager в курсе
пользователям так же нужен доступ через админку к сайтам, к почте можно по старинке webmail. + админка админа домена по типу postfixadmin для сопровождения пользоватлей почтового домена. Отправлять почту через сервер нужно с авторизацией по паролю (с которым пользователи забирают почту) как пожелание.
Что посоветуете?

Vlad-76
()

Как в LUA реализовать струтуру данных - аналог perl-ового хеш хешей?

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

или модуль какой необходим ...
просьба примеров побольше

Vlad-76
()

lua ошибка при чтении pipe

Этот скрипт читатель читает из pipe (созданный mkfifo) поток строк, получив сигнал SIGUSR1 от скрипта который пишет (писатель) в pipe, анализирует полученные строки и сохраняет результаты в файл и продолжает читать pipe. таких скриптов запущенно одновременно несколько, у каждого свой pipe. Скрипт писатель по кругу выбирает в какой pipe писать данные и раз в 15 сек меняет получателя посылая SIGUSR1 текущему читателю перед его сменой. По сути ничего супер выдающегося. Но есть проблема

строка line = assert(read_file:read())
завершается ошибкой И каждый раз непредсказуемо, то на первом круге все схлопывается то на 4 ом.

#!/usr/bin/lua
local P = require 'posix'
for k,v in pairs(P) do _G[k] = v end -- без этой строчки не вызываются функции модуля posix
local pipe_in = arg[1]
local switch_interval = tonumber(arg[3])
local instance = arg[4]
root_dir = "/opt/ddos_pps_to_ip"
results_dir = root_dir .. "/results"
pids_dir = root_dir .. "/pids"
local strings = {} -- массив строк для анализа
local ddos_dstip = {} -- массив с количеством пакетов на dstip
maxpps = 100 -- порог PPS превышение которого обнаруживает скрипт
pid=P.getpid"pid"
print("INSTANCE: " .. instance  .. " " .. "PID: " .. pid)
fpid = io.open( pids_dir .. "/ddos" .. instance .. ".pid", "w")
io.output(fpid)
io.write(pid,"\n")
io.close(fpid)
read_file = io.open(pipe_in, "r") -- откроем pipe на чтение
fo = io.open(arg[2], "w") -- сохраним в файл считанные из pipe строки для отладки !!!!!!
io.output(fo)
function handler_sigusr1(signo)  -- обработчик сигнала  SIGUSR1
    fo:flush () -- сбросим буфер в файл
    print("PID:",pid,'handled',signo)
    as=#strings
    print("PID:",pid,"START CHECK DDOS",os.date"%T",time (),"Получено строк на обработку: ",as)
    for i = 1, as, 1 do   -- проанализируем все строки
        dstip = string.sub (strings[i], 71, 85)
        dstip = string.gsub (dstip," ","")
        numpack = string.sub (strings[i], 100, 103)
        numpack = string.gsub (numpack," ","")
        numpack = tonumber(numpack)
        num = ddos_dstip[dstip]
        if numpack ~= nil then
            if num ~= nil then -- первое появление IP адреса
                num = tonumber(num)
                ddos_dstip[dstip] = numpack + num
            else
                ddos_dstip[dstip] = numpack
            end
        end
    end
    rr = results_dir .. "/ddos" .. "_" .. time () .. "_" .. os.date"%T" .. ".result"
    local result_file = io.open( rr , "w")
    io.output(result_file)
    for k, v in pairs(ddos_dstip) do
        pps = math.floor(v/switch_interval)
        if pps >= maxpps then
            str = "dest_ip : " .. k .. " pps: " .. pps
            io.write(str,"\n")
        end
    end
    io.flush();
    result_file:close()
    ddos_dstip = {} -- очистим массив
    strings = {} -- очистим массив
    fo:flush ()
    print("PID:",pid,"STOP CHECK DDOS ",os.date"%T",time ())
end

signal(SIGUSR1,handler_sigusr1)

while true do
    line = assert(read_file:read()) -- assert вставлен для анализа
    if line == nil then
        print ("read PID:",pid,"Считал строку = nil")
        break
    end
    table.insert(strings, line)
    io.write(line,"\n")   -- вывод в файл - дублирование строк для отладки
end
print ("PID:",pid,"ЗАВЕРШАЕМ РАБОТУ")
fo:close() -- это необходимо вынести в обработчик сигналов INT TERM
read_file:close() -- это необходимо вынести в обработчик сигналов INT TERM

пробовал в if line == nil then переоткрывать pipe (вместо break), скрипты цепочки писатель - читатель не падают, но вопрос почему же падает читатель? Может что то я неправильно представляю и конструкция чтения строк из pipe «while true do» не для скриптов с прерываниями на обработку сигналов? Или переоткрывание pipe все таки правильно?

и еще вопрос. число строк записанных в pipe процессом писателем никогда не совпадает с числом строк полученных процессом читателем, это нормально для IPC c использованием pipe?

Vlad-76
()

как реализовать логику работы «таймера delphi» в lua ?

Нужно выполнять определенную функцию периодически через определенный интервал. При этом есть основной алгоритм работу которого прерывать нельзя. В голове крутится логика таймера в delphi. Но у lua подобного этого нет. Прошу помощи. Интересует готовое решение, можно аналог логики таймера.

Vlad-76
()

Восстановление grub на сервере с ядром OVZ,не пойму что происходит.

Сервер с CentOS5.4 на котором рабочим было ядро от OpenVZ после очередной перезагрузки не загрузился. Ядро от OpenVZ обновлял раза два.
На экране типа GRUB_ и мертвяк.
по такой примерно инструкции (в инете нашел) восстанавливаю grub
1. Загрузка с установочного диска CentOS5.7
2. Выбор пункта: F5 rescue mode
3. Выбор пункта: English
4. Выбор пункта: Local CD/DVD
5. Отказался от setup networking
6. Выбор пункта: Continue
7. Сообщение: /mnt/sysimage
8. Выбор пункта: shell Start shell
9. Консоль ввод: chroot /mnt/sysimage
10. Консоль ввод: grub
11. Консоль grub'a ввод : find /boot/grub/stage2

grub вывод : root (hd0,2)

12. Консоль grub'a ввод : root (hd0,2)
13. Консоль grub'a ввод : setup (hd0)
14. Консоль grub'a ввод : quit
15. Консоль ввод: exit
16. Консоль ввод: exit
17: Выбор пункта: reboot

После загрузки сервера появляется синий экран с предложением выбора ядра для загрузки, но последнего ядра «title OpenVZ» там нет !!!
Грузится по умолчанию «title CentOS (2.6.18-164.15.1.el5.028stab068.9PAE)»

more grub.conf

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda3
# initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title OpenVZ (2.6.18-308.el5.028stab099.3PAE)
root (hd0,0)
kernel /vmlinuz-2.6.18-308.el5.028stab099.3PAE ro root=LABEL=/ selinux=0
initrd /initrd-2.6.18-308.el5.028stab099.3PAE.img
title CentOS (2.6.18-164.15.1.el5.028stab068.9PAE)
root (hd0,0)
kernel /vmlinuz-2.6.18-164.15.1.el5.028stab068.9PAE ro root=LABEL=/
initrd /initrd-2.6.18-164.15.1.el5.028stab068.9PAE.img
title CentOS (2.6.18-164.15.1.el5PAE)
root (hd0,0)
kernel /vmlinuz-2.6.18-164.15.1.el5PAE ro root=LABEL=/
initrd /initrd-2.6.18-164.15.1.el5PAE.img
title CentOS (2.6.18-128.el5PAE)
root (hd0,0)
kernel /vmlinuz-2.6.18-128.el5PAE ro root=LABEL=/
initrd /initrd-2.6.18-128.el5PAE.img

Пробовал переустановить ядро от openvz, но никакого эффекта - загрузчик само собой не грузит ядро, которое было установлено последним, а грузит второе из (grub.conf) и даже не предлагает для загрузки последнее яdро от OpenVZ
т.е. в конфиге grub нужно ядро есть но оно не грузится!!!
Как такое случилось и что посоветуете изменить, сделать?

Vlad-76
()

Посоветуйте надежные SSD диски 180-240ГБ для RAID5 массива.

Думал вот такие
http://www.ulmart.ru/goods/295407/
Может быть есть лучше?

Vlad-76
()

Знатокам RAID технологий,вопрос

На материнке интегрированный контроллер
05:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 1078 (rev 04)
Вставляю в корзину сервера с этой материнкой два диска и через RAID BIOS делаю из них страйп. Затем вынимаю эти диски цепляю в комп с материнкой которая без какого либо RAID контроллера.Загружается CentOS5.4 и вуаля система увидела мой страйповый RAID !!!

# dmraid -r
/dev/hda: ddf1, ".ddf1_disks", GROUP, ok, 1951170560 sectors, data@ 0
/dev/sdb: ddf1, ".ddf1_disks", GROUP, ok, 1951170560 sectors, data@ 0

# dmraid -s
*** Group superset .ddf1_disks
--> Active Subset
name : ddf1_496e74656c20202010000060808635083d8d76e7c199e329
size : 3902341120
stride : 512
type : stripe
status : ok
subsets: 0
devs : 2
spares : 0

диск форматнул, подмонтировал данные пишутся - все жужжит
Как такое может быть?
Это че в рейд контролере крутится обычный linux ?

Vlad-76
()

Не грузится CentOS 5.8 после установки на RAID

На сервер ранее ставилась CentOS5.4 на RAID диск размером 150ГБ, но RAID умер. Заново создаю RAID, диск 150ГБ, разбиваю аналогично как и ранее было (без LVM) и ставлю на него уже CentOS5.8 с CD netinstall. Инсталляция проходит без ошибок. После ребута появляется синий экранчик grub и типа вот вот начнет грузиться ядро. Но не тут то было. Черный экран на котором grub вываливает параметры загрузки ядра и все...приехали.
Че может быть?

Vlad-76
()

RSS подписка на новые темы