Wednesday, December 12, 2018
Text Size

EasyBlog

This is some blog description about this site

  • Home
    Home This is where you can find all the blog posts throughout the site.
  • Categories
    Categories Displays a list of categories from this blog.
  • Tags
    Tags Displays a list of tags that have been used in the blog.
  • Bloggers
    Bloggers Search for your favorite blogger from this site.
  • Team Blogs
    Team Blogs Find your favorite team blogs here.
  • Login
    Login Login form

https://yvision.kz/post/528726

 

В этой записке будут собраны примеры контроля скорости трафика. Это нужно чтобы входящий и исходящий канал не забивался. Например один пользователь смотрит ролик на youtube.com и отправляет большое...


Hits: 30
0

Information About Engineering Sample Processors

 

What is an engineering sample (ES) processor?
Engineering sample (ES) processors are also known as qualification sample processors. They are pre-production processors Intel loans to original equipment manufacturers (OEMs), original device manufacturers (ODMs), and independent software vendors (ISVs) to be used in the product design cycle before product launch.

These processors often include more features than production processors for customer pre-production evaluation and test purposes. ES processors:

  • Produced by Intel are the sole property of Intel.
  • Produced by Intel are Intel Confidential.
  • Are provided by Intel under nondisclosure and/or special loan agreement terms with restrictions on the recipient's handling and use.
  • Are not for sale or resale.
  • May not have passed commercial regulatory requirements.
  • Are not covered under Intel warranty and are generally not supported by Intel.
How do I identify ES processors produced by Intel?The easiest way to tell if you have an ES processor produced by Intel is to look at the processor topside markings. If you have a four or five-digit Qspec listed like the one pictured below, you have an engineering sample. A production processor has a five digit sSpec on the topside markings. It usually begins with S, like SLB9L.

If you don't find ink or laser markings, the processor may be an unmarked ES processor. Contact Intel if you have an unmarked ES processor.
Unmarked Intel ES processor

You can also use the Intel® Processor Identification Utility to help identify if a particular processor is an ES processor produced by Intel.

Once you install and run the Intel Processor Identification Utility on an ES processor, the following message appears in the text box:

The following Intel® Processor appears to be an engineering sample, not a production processor. The utility is designed to support production processors only. Sample processors are not warranted by Intel and are not intended for resale.

Can I get ES processors from Intel?Due to the pre-production nature of ES processors, they are generally only loaned to OEMs, ODMs, and ISVs for pre-production test and evaluation work under specific contractual terms and conditions to assure the protection of assets and confidential information.

ES processors are not made available to the general public by Intel.

Contact your vendor or place of purchase if you have received an ES processor in place of a production processor.

If you have other questions or concerns, you can contact:

Do you replace engineering samples?No, engineering samples are pre-production units, issued free of charge and are not eligible for warranty.

 

Hits: 138
0

декілька днів процес gvfs-metadata недуже замітно виносив процесор на 100% 

перезавантаження сервера також не допомагає

через менеджер процесів ... htop     ....  top  це також не зназу зрозуміло

вирішення 

видаляємо файл 

/root/.local/share/gvfs-metadata

припиняємо процес 

rm -rf ~/.local/share/gvfs-metadata
pkill gvfsd-metadata

чекаємо хвилинку .. дві ..три .. і файловий менеджер відновить свою роботу ... систему перезавантажувати непотрібно

https://ubuntuforums.org/showthread.php?t=1421580&page=2&s=7ea354ba95dd304920d86421c9489723

 

Hits: 169
0

 

https://tech.tiq.cc/2014/02/how-to-set-up-an-email-server-with-postfix-and-dovecot-without-mysql-on-debian-7/

The used postfix version is 2.9.6, the used dovecot version is 2.1.7.

Hostname, MX and rDNS record

Before doing anything you should change the hostname of your server, set a MX record and set the rDNS record.

The procedure for this varies depending on your domain and server provider but if you can not do either you will not be able to send and/or receive mails.

The following guide assumes you have set your hostname, mx and rDNS record to “mx.example.com”.

Installation and users

Install postfix and dovecot:

apt-get install postfix dovecot-core dovecot-pop3d dovecot-imapdSelect “Internet Site” during the installation process of postfix.

Add user and group vmail:

groupadd -g 5000 vmail useradd -s /usr/sbin/nologin -u 5000 -g 5000 vmailAdd user postfix and dovecot to group vmail:

usermod -aG vmail postfix usermod -aG vmail dovecot

Folders, virtual mailbox/domains/aliases and logs

Add the folder the mails will be stored in and give rights to user vmail:

mkdir -p /var/mail/vhosts/example.com chown -R vmail:vmail /var/mail/vhosts chmod -R 775 /var/mail/vhostsCreate dovecot log file:

touch /var/log/dovecot chgrp vmail /var/log/dovecot chmod 660 /var/log/dovecot

Virtual mailboxes

nano /etc/postfix/vmailboxNew mailboxes will be added like so:

you@example.com example.com/you/You do not have to enter anything here though, the add user script towards the end of this post will do all the work. To only create an empty file use “touch” instead of “nano”.
This defines the mailbox you@example.com and where your mails will be stored (/var/mail/vhosts/example.com/you/).
YOU HAVE TO EXECUTE THE FOLLOWING TO TAKE OVER CHANGES:

postmap /etc/postfix/vmailbox

Virtual aliases

nano /etc/postfix/virtual_aliasHere you can set aliases if you want:

@example.com you@example.comThe above example redirects all mails sent to example.com to you@example.com.
YOU HAVE TO EXECUTE THE FOLLOWING TO TAKE OVER CHANGES:

postmap /etc/postfix/virtual_alias

Virtual domains

nano /etc/postfix/virtual_domainsSimply enter your domain:

example.com

SSL certificate

mkdir /etc/dovecot/ssl cd /etc/dovecot/ssl openssl req -new -newkey rsa:3072 -nodes -keyout mailserver.key -days 9999 -x509 -out mailserver.crtNote that the “Common Name” has to be the domain of your mail server (mx.yourdomain.com).

Configuration files

All lines that you need to change have the string “CHANGETHIS” in them.

/etc/postfix/main.cf

smtpd_banner = $myhostname ESMTP biff = no append_dot_mydomain = no recipient_delimiter = + readme_directory = no myhostname = mx.example.comCHANGETHIS mydomain = mx.example.comCHANGETHIS myorigin = $mydomain inet_interfaces = all mydestination = localhost, $mydomain mynetworks = 127.0.0.0/8 virtual_mailbox_domains = /etc/postfix/virtual_domains virtual_mailbox_base = /var/mail/vhosts virtual_mailbox_maps = hash:/etc/postfix/vmailbox virtual_alias_maps = hash:/etc/postfix/virtual_alias virtual_minimum_uid = 100 virtual_uid_maps = static:5000 virtual_gid_maps = static:5000 virtual_transport = virtual dovecot_destination_recipient_limit = 1 mailbox_size_limit = 0 ##SASL## smtpd_sasl_auth_enable = yes smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain = $mydomain broken_sasl_auth_clients = yes ##TLS## smtpd_use_tls=yes smtpd_tls_security_level = may smtpd_tls_auth_only = no smtpd_tls_cert_file=/etc/dovecot/ssl/mailserver.crt smtpd_tls_key_file=/etc/dovecot/ssl/mailserver.key smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtpd_tls_received_header = yes tls_random_source = dev:/dev/urandom smtpd_tls_security_level = may smtp_tls_security_level = may ##restrictions## smtpd_helo_required=yes strict_rfc821_envelopes = yes disable_vrfy_command = yes smtpd_delay_reject = yes ##limit rate## anvil_rate_time_unit = 60s smtpd_client_connection_rate_limit = 5 smtpd_client_connection_count_limit = 5 smtpd_error_sleep_time = 5s smtpd_soft_error_limit = 2 smtpd_hard_error_limit = 3 ################## smtpd_helo_restrictions= reject_non_fqdn_hostname, reject_invalid_helo_hostname, reject_unknown_helo_hostname smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unknown_client_hostname, reject_unauth_pipelining, reject_rbl_client zen.spamhaus.org smtpd_sender_restrictions = reject_non_fqdn_sender, reject_unknown_sender_domain smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_invalid_hostname, reject_non_fqdn_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unauth_destination, reject_unauth_pipelining, reject_rbl_client zen.spamhaus.org, reject_rbl_client cbl.abuseat.org, reject_rbl_client dul.dnsbl.sorbs.net smtpd_recipient_limit = 250 broken_sasl_auth_clients = yes #message_size_limit = 120480000 ##remove IP header## # requires postfix-pcre (apt-get install postfix-pcre) #header_checks has the following content: #/^\s*(Received: from)[^\n]*(.*)/ REPLACE $1 [127.0.0.1] (localhost [127.0.0.1])$2 # #smtp_header_checks = pcre:/etc/postfix/header_checks

/etc/dovecot/dovecot.conf

auth_mechanisms = plain login disable_plaintext_auth = no log_path = /var/log/dovecot mail_location = maildir:/var/mail/vhosts/%d/%n passdb { args = /var/mail/vhosts/%d/shadow driver = passwd-file } protocols = imap pop3 service auth { unix_listener /var/spool/postfix/private/auth { group = vmail mode = 0660 user = postfix } unix_listener auth-master { group = vmail mode = 0600 user = vmail } } ssl_cert = </etc/dovecot/ssl/mailserver.crt ssl_key = </etc/dovecot/ssl/mailserver.key userdb { args = /var/mail/vhosts/%d/passwd driver = passwd-file } protocol lda { auth_socket_path = /var/run/dovecot/auth-master hostname = mx.yourdomain.comCHANGETHIS mail_plugin_dir = /usr/lib/dovecot/modules mail_plugins = sieve postmaster_address = postmaster@example.comCHANGETHIS }

/etc/postfix/master.cf

smtp inet n - - - - smtpd 8080 inet n - - - - smtpd smtps inet n - - - - smtpd submission inet n - n - - smtpd pickup fifo n - - 60 1 pickup cleanup unix n - - - 0 cleanup qmgr fifo n - n 300 1 qmgr tlsmgr unix - - - 1000? 1 tlsmgr rewrite unix - - - - - trivial-rewrite bounce unix - - - - 0 bounce defer unix - - - - 0 bounce trace unix - - - - 0 bounce verify unix - - - - 1 verify flush unix n - - 1000? 0 flush proxymap unix - - n - - proxymap proxywrite unix - - n - 1 proxymap smtp unix - - - - - smtp relay unix - - - - - smtp showq unix n - - - - showq error unix - - - - - error retry unix - - - - - error discard unix - - - - - discard local unix - n n - - local virtual unix - n n - - virtual lmtp unix - - - - - lmtp anvil unix - - - - 1 anvil scache unix - - - - 1 scache uucp unix - n n - - pipe flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient) ifmail unix - n n - - pipe flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient) bsmtp unix - n n - - pipe flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient scalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension} mailman unix - n n - - pipe flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user} dovecot unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${recipient}

Script to add users

#!/bin/bash USAGE="Usage: $0 EMAIL PASSWORD [BASEDIR]"; if [ ! -n "$2" ] then echo $USAGE; exit 1; fi USERNAME=$(echo "$1" | cut -f1 -d@); DOMAIN=$(echo "$1" | cut -f2 -d@); ADDRESS=$1; PASSWD=$2; if [ -n "$3" ] then if [ ! -d "$3" ] then echo $USAGE; echo "BASEDIR must be a valid directory!"; echo "I would have tried, $(postconf | grep ^virtual_mailbox_base | cut -f3 -d' ')"; exit 2; else BASEDIR="$3"; fi else BASEDIR="$(postconf | grep ^virtual_mailbox_base | cut -f3 -d' ')"; fi if [ -f /etc/postfix/vmailbox ] then echo "Adding Postfix user configuration..." echo $ADDRESS $DOMAIN/$USERNAME/ >> /etc/postfix/vmailbox postmap /etc/postfix/vmailbox if [ $? -eq 0 ] then echo "Adding Dovecot user configuration..." echo $ADDRESS::5000:5000::$BASEDIR/$DOMAIN/$ADDRESS>> $BASEDIR/$DOMAIN/passwd echo $ADDRESS":"$(doveadm pw -p $PASSWD) >> $BASEDIR/$DOMAIN/shadow chown vmail:vmail $BASEDIR/$DOMAIN/passwd && chmod 775 $BASEDIR/$DOMAIN/passwd chown vmail:vmail $BASEDIR/$DOMAIN/shadow && chmod 775 $BASEDIR/$DOMAIN/shadow /etc/init.d/postfix reload fi fiAdd a new mail user with ./file_name_of_script user@example.com desiredpassword

If you only copy/pasted commands so far, you will probably need to restart dovecot:

/etc/init.d/dovecot restart

Mail client configuration

The configuration details are:

SMTP, IMAP and POP3 server: mx.example.com
SMTP Port: 25 (or 587, or 8080. In some networks, port 25 and 587 outgoing are blocked)
IMAP Port: 143
POP3 Port: 110

username: user@example.com
(NOT just “user”)

You will receive a warning message for the first time you connect to each, SMTP, IMAP and POP3, because you are using a self-signed certificate.

Hits: 195
0

Posted by on in Uncategorized

 

 

mailq | tail -n +2 | head -n -2 | grep -v '^ *(' | awk 'BEGIN { RS = "" } { if (($7 == "registration@facebookmail.com")) print $1 }' | tr -d '*!' | postsuper -d -

 

mailq | tail -n +2 | awk 'BEGIN { RS = "" } / falko@example\.com$/ { print $1 }' | tr -d '*!' | postsuper -d -

 

 

 

 

#!/bin/bash if [ "$#" -eq 0 ] then echo "No arguments supplied" echo "Usage: $0 sender@example.com somedomain.com" >&2 exit 1 fi read -p "Do you want to delete all queued messages from $1 to $2 ? " -r echo if [[ $REPLY =~ ^[Yy]$ ]] then echo -e "Postfix Warning: Deleting all queued messages from $1 to $2" mailq | tail -n +2 | head -n -2 | grep -v '^ *(' | awk -v sender="$1" -v domain="$2" 'BEGIN { RS = "" } { if (($7 == sender) && ($8 ~ domain)) print $1 }' | tr -d '*!' | postsuper -d - echo "Operation completed ..." else echo "Operation aborted ..." fi
 
 
 
Hits: 0
0

Posted by on in Uncategorized

 

 

mailq | tail -n +2 | head -n -2 | grep -v '^ *(' | awk 'BEGIN { RS = "" } { if (($7 == "registration@facebookmail.com")) print $1 }' | tr -d '*!' | postsuper -d -

 

mailq | tail -n +2 | awk 'BEGIN { RS = "" } / falko@example\.com$/ { print $1 }' | tr -d '*!' | postsuper -d -

 

 

 

 

#!/bin/bash if [ "$#" -eq 0 ] then echo "No arguments supplied" echo "Usage: $0 sender@example.com somedomain.com" >&2 exit 1 fi read -p "Do you want to delete all queued messages from $1 to $2 ? " -r echo if [[ $REPLY =~ ^[Yy]$ ]] then echo -e "Postfix Warning: Deleting all queued messages from $1 to $2" mailq | tail -n +2 | head -n -2 | grep -v '^ *(' | awk -v sender="$1" -v domain="$2" 'BEGIN { RS = "" } { if (($7 == sender) && ($8 ~ domain)) print $1 }' | tr -d '*!' | postsuper -d - echo "Operation completed ..." else echo "Operation aborted ..." fi
 
 
 
Hits: 230
0

Posted by on in Uncategorized

 https://wiki.openwrt.org/doc/howto/usb.i2c-tiny-usb

https://github.com/harbaum/I2C-Tiny-USB

 

Introduction

Several routers and embedded devices with OpenWRT-support are equipped with one or more USB ports. In order not to risk your warranty by opening your device and soldering an I²C bus to the GPIOs, you can use an USB-I²C adapter to connect to your I²C-devices (e.g. temperature sensors, RTCs, AD-converters, GPIO-expanders, LCD-Drivers). One of those adapters is called https://wiki.openwrt.org/lib/tpl/openwrt/../../images/external-link.png");">i2c-tiny-usb, developed by Till Harbaum. Biggest advantage is the low price (though not as cheap as the GPIO mod) and the support in the Linux kernel (thus making it possible to connect it to your computer running a recent Linux distribution and test it). Though you need some basic soldering skills, and at the moment you need to build OpenWRT from source.

Compiling the kernel module

Note: This module is now in trunk, called kmod-i2c-tiny-usb. You can use a https://wiki.openwrt.org/lib/tpl/openwrt/../../images/external-link.png");">snapshot and install this kernel module with opkg.
Follow the build instructions until you reach the topic building images. At that point you have to edit you kernel configuration:

make kernel_menuconfigMake sure the following items are selected:

  • Device Drivers > I2C support > I2C device interface <*> (to get access through /dev/i2c-X)
  • Device Drivers > I2C support > I2C Hardware Bus support > Tiny-USB adapter <*>
Continue with the build instructions.

Using the I²C bus - kernel module

Since the module is compiled into the kernel, the I2C-Tiny-USB adapter can be plugged in. The successful registration can be tested:

dmesg | tail usb 1-3.3: new low speed USB device using ehci_hcd and address 5 usb 1-3.3: New USB device found, idVendor=0403, idProduct=c631 usb 1-3.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0 usb 1-3.3: Product: i2c-tiny-usb usb 1-3.3: Manufacturer: Till Harbaum usb 1-3.3: configuration #1 chosen from 1 choice i2c-tiny-usb 1-3.3:1.0: version 1.05 found at bus 001 address 005 i2c-adapter i2c-0: connected i2c-tiny-usb device usbcore: registered new interface driver i2c-tiny-usbThe same results are achieved by loading the kernel module by insmod. The current trunk module within kmod-i2c-tiny-usb package works just fine (requiring also kmod-i2c-core package).

Using the I²C bus - using the bus

First install the i2c-tools package. This will provide all necessary tools for you to work with the bus.

Searching for the bus

As you already can see in the dmesg listing, the i2c-0 device was created. The device node is visible under /dev/i2c-0. First of all, check the device is also visible for i2c tools. Running

i2cdetect -l

should print something like

i2c-0 i2c i2c-tiny-usb at bus 001 device 004 I2C adapter

This is a good sign. We can show the implemented functions by running

i2cdetect -F 0

and it will print something like

Functionalities implemented by /dev/i2c-0: I2C yes SMBus Quick Command yes SMBus Send Byte yes SMBus Receive Byte yes SMBus Write Byte yes SMBus Read Byte yes SMBus Write Word yes SMBus Read Word yes SMBus Process Call yes SMBus Block Write yes SMBus Block Read no SMBus Block Process Call no SMBus PEC no I2C Block Write yes I2C Block Read yes

Searching for the devices

Now, we can search for devices, connected to the bus:

i2cdetect 0

will scan the bus and show available devices, similar to this:

WARNING! This program can confuse your I2C bus, cause data loss and worse! I will probe file /dev/i2c-0. I will probe address range 0x03-0x77. Continue? [Y/n] 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: – – – – – – – – – – – – – 10: – – – – – – – – – – – – – – – – 20: 20 – – – – – – – – – – – – – – – 30: – – – – – – – – – – – – – – – – 40: – – – – – – – – – – – – – – – – 50: – – – – – – – – – – – – – – – – 60: – – – – – – – – – – – – – – – – 70: – – – – – – – –

Should you be anoyed by the Y/n question, you can use the -y switch to avoid it ;)

As you can see, I have an i2c device accessible on address 0x20 on the bus number 0.

Accessing the example device

My device is actually a https://wiki.openwrt.org/lib/tpl/openwrt/../../images/external-link.png");">MCP23017 - 16 port GPIO expander. First I have to set the directions of the inputs and outputs - as this device possess 2 ports (A and B), I have to set the direction for both of them - setting a bit to 0 will cause it to switch to output, setting the bit to 1 will cause to switch to input. The address to set the direction for port A is 0x00, for port B it's 0x01. Therefore to set the first 8 channels (port A) to output, I'd run

i2cset -y 0 0x20 0x00 0

That means use the device at the address 0x20 on the bus /dev/i2c-0, set its address 0x00 to zero value. The -y switch is there just to avoid the Y/n question. Also, to set the port B to input, I'd issue following command:

i2cset -y 0 0x20 0x01 0xff

This will set all the pins for port B to input. To set the actual value for port A, the address 0x12 is utilized. Similar, for port B, the address is 0x13. Therefore to set first bit to logical 1, I'd issue (assuming I already set the port's bit for output):

i2cset -y 0 0x20 0x12 1

Should you have some LED connected to the port, it will shine bright now. To turn it off, simply issue the following:

i2cset -y 0 0x20 0x12 0

Should some input be set on the port B, one can read its value by using following command:

i2cget -y 0 0x20 0x13

The result will be something like 0x00 (corresponding to the logical values presented to the actual pins).

Using this approach, you can enrich the OpenWRT device with multiple I/O channels.

I've already tested MCP23017, MCP23008, some i2c temperature sensors and EEPROM - all working just fine.

Precaution

This I²C bus operates at 5V. Make sure not to connect I²C devices incompatible with this voltage level!

Hits: 308
0
Install the necessary packages before you can build/install ssh2 extension
yum install gcc php-devel php-pear libssh2 libssh2-devel make
Install the extension, (hit enter for autodetect when it prompts you)
pecl install -f ssh2
Once the install is completed, you just have to tell PHP to load the extension when it boots.echo extension=ssh2.so > /etc/php.d/ssh2.ini
Restart your webserver and test to see if the changes took effect.
service httpd restart
You can check it installed with the following command
php -m | grep ssh2
Hits: 212
0

розписувати шось немає бажання .. 

спробую залишити основні теми і методики .. 

мета така .. є два диска які працюють в масиві mdadm raid1 

два диска ідентичні 

на кожному диску є по два розділа .. 

перший розділ знаходиться в робочому масиві з під якого і працює вся система 

другий розділ нерозмічений 

крок 1 

видаляємо одну складову масиву і отримуємо масив з одним диском 

той диск який ми отримали вільний форматуємо і робимо на ньому лише один великий том 

додаємо цей один велики том до існуючого масиву 

синхронізуємо і очікуємо поки масив завершить синхронізацію 

завершилася синхронізація тепер встановлюємо grub на диск в якому один розділ 

видаляємо з масиву диск в якому є два розділи 

масив у нас тепер получається знову з одним диском в якому є незайняте місце .. 

видаляємо з масиву бітмап (цей крок потрібен але я незнаю до кінця механізму що він робить.. но бітмап теоретично відповідає за якусь розмітку диска )

робимо масиву grow (вирощуємо масив до максимального скільки є місця нового на диску)

вертаємо бітмап mdadm --grow /dev/md127 --bitmap internal

тепер кажемо файловій системі зайняти все це місце 

теоретично все ... наш масив став більшим .. 

!!!!!!!!! на всяк випадок щоб зайвий раз не думати ще раз встановлюємо grub 

!!!!!!!!! перевіряємо  /boot/grub/grub.conf дивимося чи там все добре написано і зокрема дивимося на шось таке :

root (hd0,0) (перший нуль означає що завантажувати з першого диску який ініціалізує біос .. це я так на хлопський розум пробую пояснити ..... а другий нулик означає з якого розділу завантажувати ... для прикладу якщо груб встановлений на /dev/sda1 тоді все так і залишаємо а якщо груб встановлений на /dev/sda2 тоді треба змінити на шось таке root (hd0,1) )

!!!!!!! перевіряємо fstab

---------------

тепер до масиву треба додати другу складову яку ми робимо з попередньо видаленого диска який мав два розділи ...

пробуємо додати через графічний інтерфейс "дискова утиліта" але вискакує помилка

пробуємо скопіювати з одного на другий диск файлову систему але також отримуємо помилку 

тоді додаємо параметр forced все копіюється ..начебто все добре ... 

додаємо диск до масиву ..

очікуємо синхронізації.. 

встановлюємо груб на новосинхронізований диск ..

здається все малоб працювати ... 

ремарка: оскільки система парцююча .. ми неможемо зробити чекдіск ..але бажано булоб його зробити ...але треба тоді вимикати систему...

 

тепер все що написано зверху кинуто як воно виглядає в консолі: 

 

 [root@cyrax ~]# mdadm --manage /dev/md127 --add /dev/sdi1
mdadm: added /dev/sdi1
[root@cyrax ~]# cat /proc/mdstat
Personalities : [raid1]
md122 : active raid1 sdb3[0] sda3[2]
488252928 blocks super 1.2 [2/2] [UU]
bitmap: 0/4 pages [0KB], 65536KB chunk

md123 : active raid1 sdb2[1] sda2[2]
488244928 blocks super 1.2 [2/2] [UU]
bitmap: 0/4 pages [0KB], 65536KB chunk

md124 : active raid1 sdb1[1] sda1[2]
488244864 blocks super 1.2 [2/2] [UU]
bitmap: 0/4 pages [0KB], 65536KB chunk

md125 : active raid1 sdb4[1] sda4[2]
488244928 blocks super 1.2 [2/2] [UU]
bitmap: 0/4 pages [0KB], 65536KB chunk

md126 : active raid1 sde1[2] sdd1[1]
1953380928 blocks super 1.2 [2/2] [UU]
bitmap: 11/15 pages [44KB], 65536KB chunk

md127 : active raid1 sdi1[3] sdc1[2]
125033816 blocks super 1.0 [2/1] [U_]
[>....................] recovery = 0.0% (9600/125033816) finish=650.0min speed=3200K/sec
bitmap: 1/1 pages [4KB], 65536KB chunk

unused devices: <none>
[root@cyrax ~]# echo 450000 > /proc/sys/dev/raid/speed_limit_min
[root@cyrax ~]# watch cat /proc/mdstat
[root@cyrax ~]# service ups stop
Зупиняється монітор UPS: [ ГАРАЗД ]
Зупиняється upsd: ^[[A [ ГАРАЗД ]
Зупиняється upsdrvctl: [ ГАРАЗД ]
[root@cyrax ~]# echo 50000 > /proc/sys/dev/raid/speed_limit_min
[root@cyrax ~]# watch cat /proc/mdstat
[root@cyrax ~]# echo 200000 > /proc/sys/dev/raid/speed_limit_min
[root@cyrax ~]# watch cat /proc/mdstat
[root@cyrax ~]# echo 100000 > /proc/sys/dev/raid/speed_limit_min
[root@cyrax ~]# watch cat /proc/mdstat
[root@cyrax ~]# echo 50000 > /proc/sys/dev/raid/speed_limit_min
[root@cyrax ~]# watch cat /proc/mdstat
[root@cyrax ~]# echo 100000 > /proc/sys/dev/raid/speed_limit_min
[root@cyrax ~]# watch cat /proc/mdstat
[root@cyrax ~]# mdadm --examine /dev/md127
mdadm: No md superblock detected on /dev/md127.
[root@cyrax ~]# mdadm --examine /dev/sdi1
/dev/sdi1:
Magic : a92b4efc
Version : 1.0
Feature Map : 0x1
Array UUID : f3c9263f:6ae4f489:1fc15cc0:e38807fc
Name : localhost.localdomain:ssdraid
Creation Time : Mon Dec 14 12:11:26 2015
Raid Level : raid1
Raid Devices : 2

Avail Dev Size : 468858728 (223.57 GiB 240.06 GB)
Array Size : 125033816 (119.24 GiB 128.03 GB)
Used Dev Size : 250067632 (119.24 GiB 128.03 GB)
Super Offset : 468858864 sectors
Unused Space : before=0 sectors, after=218791216 sectors
State : active
Device UUID : ca260048:6d6f986f:19ec8dce:622f5740

Internal Bitmap : -16 sectors from superblock
Update Time : Thu Dec 14 13:47:22 2017
Bad Block Log : 512 entries available at offset -8 sectors
Checksum : db51a8ff - correct
Events : 985285


Device Role : Active device 1
Array State : .A ('A' == active, '.' == missing, 'R' == replacing)
[root@cyrax ~]# mdadm -D /dev/md127
/dev/md127:
Version : 1.0
Creation Time : Mon Dec 14 12:11:26 2015
Raid Level : raid1
Array Size : 125033816 (119.24 GiB 128.03 GB)
Used Dev Size : 125033816 (119.24 GiB 128.03 GB)
Raid Devices : 2
Total Devices : 1
Persistence : Superblock is persistent

Intent Bitmap : Internal

Update Time : Thu Dec 14 13:48:05 2017
State : active, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0

Name : localhost.localdomain:ssdraid
UUID : f3c9263f:6ae4f489:1fc15cc0:e38807fc
Events : 985333

Number Major Minor RaidDevice State
0 0 0 0 removed
3 8 129 1 active sync /dev/sdi1
[root@cyrax ~]# mdadm --grow /dev/md127 --bitmap none
[root@cyrax ~]#

[root@cyrax ~]# mdadm --grow /dev/md127 --bitmap none
[root@cyrax ~]# mdadm --grow /dev/md127 --size max
mdadm: component size of /dev/md127 has been set to 234429364K
[root@cyrax ~]# mdadm --grow /dev/md127 --bitmap internal
[root@cyrax ~]# mdadm -D /dev/md127
/dev/md127:
Version : 1.0
Creation Time : Mon Dec 14 12:11:26 2015
Raid Level : raid1
Array Size : 234429364 (223.57 GiB 240.06 GB)
Used Dev Size : 234429364 (223.57 GiB 240.06 GB)
Raid Devices : 2
Total Devices : 1
Persistence : Superblock is persistent

Intent Bitmap : Internal

Update Time : Thu Dec 14 13:50:11 2017
State : active, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0

Name : localhost.localdomain:ssdraid
UUID : f3c9263f:6ae4f489:1fc15cc0:e38807fc
Events : 985502

Number Major Minor RaidDevice State
0 0 0 0 removed
3 8 129 1 active sync /dev/sdi1
[root@cyrax ~]#



[root@cyrax ~]# grub
Probing devices to guess BIOS drives. This may take a long time.
Unknown partition table signature


GNU GRUB version 0.97 (640K lower / 3072K upper memory)

[ Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename.]
grub> find /boot/grub/stage1
find /boot/grub/stage1
(hd8,0)
grub> root (hd8,0)
root (hd8,0)
Filesystem type is ext2fs, partition type 0xfd
grub> setup (hd8)
setup (hd8)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd8)"... 27 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd8) (hd8)1+27 p (hd8,0)/boot/grub/stage2 /boot/grub/grub.conf"... succeeded
Done.
grub> ^[[A^[[B^C
[root@cyrax ~]# resize2fs /dev/md127
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/md127 is mounted on /; on-line resizing required
old desc_blocks = 8, new_desc_blocks = 14
Performing an on-line resize of /dev/md127 to 58607341 (4k) blocks.
The filesystem on /dev/md127 is now 58607341 blocks long.

[root@cyrax ~]#


[root@cyrax ~]# mdadm --examine /dev/md127
mdadm: No md superblock detected on /dev/md127.
[root@cyrax ~]# mdadm --examine /dev/sdi
/dev/sdi:
MBR Magic : aa55
Partition[0] : 468858880 sectors at 2048 (type fd)
[root@cyrax ~]# mdadm --examine /dev/sdc
/dev/sdc:
MBR Magic : aa55
[root@cyrax ~]# sfdisk -h
sfdisk: invalid option -- 'h'
sfdisk (util-linux-ng 2.17.2)
Використання: sfdisk [параметри] пристрій ...
пристрій: щось на зразок /dev/hda чи /dev/sda
корисні параметри:
-s [або --show-size]: вивести розмір розділу
-c [або --id]: вивести або змінити ідентифікатор розділу
-l [або --list]: вивести розділи кожного пристрою
-d [або --dump]: те ж саме, але у форматі прийнятному для подальшого вводу
-i [або --increment]: кількість циліндрів починається з 1, а не з 0
-uS, -uB, -uC, -uM: ввід/вивід у одиницях сектори/блоки/циліндри/Мб
-T [або --list-types]:вивести всі відомі типи розділів
-D [або --DOS]: для DOS-сумісності: втрачається трохи простору
-R [або --re-read]: змусити ядро перечитати таблицю розділів
-N# : змінити лише розділ з номером #
-n : не записувати нічого на диск
-O file : зберегти у файл сектори, які будуть перезаписані
-I file : відновити ці сектори знову
-v [або --version]: вивести версію
-? [або --help]: вивести це повідомлення
небезпечні параметри:
-g [або --show-geometry]: вивести видану ядром геометрію
-G [or --show-pt-geometry]: вивести видану, яку визначено з таблиці розділів
-x [або --show-extended]: також вивести перелік розширених розділів
або очікувати їх дескриптори при вводі
-L [або --Linux]: не скаржитись на несуттєві для Linux речі
-q [або --quiet]: не виводити попередження
Ви можете перевизначити виявлену геометрію використовуючи:
-C# [або --cylinders #]:встановити кількість циліндрів
-H# [або --heads #]: встановити кількість головок
-S# [або --sectors #]: встановити кількість секторів
Ви можете вимкнути перевірку логічності за допомогою:
-f [або --force]: виконувати команди примусово, навіть безглузді
[root@cyrax ~]# sfdisk -d /dev/sdc
# partition table of /dev/sdc
unit: sectors

/dev/sdc1 : start= 0, size= 0, Id= 0
/dev/sdc2 : start= 0, size= 0, Id= 0
/dev/sdc3 : start= 0, size= 0, Id= 0
/dev/sdc4 : start= 0, size= 0, Id= 0
[root@cyrax ~]# sfdisk -d /dev/sdi
# partition table of /dev/sdi
unit: sectors

/dev/sdi1 : start= 2048, size=468858880, Id=fd
/dev/sdi2 : start= 0, size= 0, Id= 0
/dev/sdi3 : start= 0, size= 0, Id= 0
/dev/sdi4 : start= 0, size= 0, Id= 0
[root@cyrax ~]# sfdisk -d /dev/sdi | sfdisk /dev/sdb
Перевіряється, що ніхто наразі не використовує диск ...
BLKRRPART: Device or resource busy

Цей диск наразі використовується - зміна розділів, можливо, погана ідея.
Демонтуйте всі файлові системи, та відключіть всі розділи підкачки на цьому диску.
Використовуйте параметр --no-reread щоб обминути цю перевірку.
Використовуйте параметр --force, щоб відхилити всі перевірки.
[root@cyrax ~]# sfdisk -d /dev/sdi | sfdisk /dev/sdc
Перевіряється, що ніхто наразі не використовує диск ...
Гаразд

Диск /dev/sdc: 29185 циліндрів, 255 головок, 63 секторів/доріжку
Старий стан:
Одиниці виміру = циліндри по 8225280 байт, блоки по 1024 байт, рахуючи від 0

Пристрій Завант Початок Кінець Циліндрів Блоків Ід Система
/dev/sdc1 0 - 0 0 0 Порожн
/dev/sdc2 0 - 0 0 0 Порожн
/dev/sdc3 0 - 0 0 0 Порожн
/dev/sdc4 0 - 0 0 0 Порожн
Новий стан:
Одиниці виміру = сектори по 512 байт, рахуючи від 0

Пристрій Завант Початок Кінець Секторів Ід Система
/dev/sdc1 2048 468860927 468858880 fd Linux raid autodetect
/dev/sdc2 0 - 0 0 Порожн
/dev/sdc3 0 - 0 0 Порожн
/dev/sdc4 0 - 0 0 Порожн
Попередження: розділ 1 не закінчується на межі циліндра

sfdisk: Ці розділи виглядають неправильно - нічого не змінено.
(Якщо ви дійсно цього бажаєте, використовуйте параметр --force.)
[root@cyrax ~]# sfdisk -d /dev/sdi | sfdisk --force /dev/sdc
Перевіряється, що ніхто наразі не використовує диск ...
Гаразд

Диск /dev/sdc: 29185 циліндрів, 255 головок, 63 секторів/доріжку
Старий стан:
Одиниці виміру = циліндри по 8225280 байт, блоки по 1024 байт, рахуючи від 0

Пристрій Завант Початок Кінець Циліндрів Блоків Ід Система
/dev/sdc1 0 - 0 0 0 Порожн
/dev/sdc2 0 - 0 0 0 Порожн
/dev/sdc3 0 - 0 0 0 Порожн
/dev/sdc4 0 - 0 0 0 Порожн
Новий стан:
Одиниці виміру = сектори по 512 байт, рахуючи від 0

Пристрій Завант Початок Кінець Секторів Ід Система
/dev/sdc1 2048 468860927 468858880 fd Linux raid autodetect
/dev/sdc2 0 - 0 0 Порожн
/dev/sdc3 0 - 0 0 Порожн
/dev/sdc4 0 - 0 0 Порожн
Попередження: розділ 1 не закінчується на межі циліндра
Успішно записано нову таблицю розділів

Перечитується таблиця розділів ...

Якщо ви створили або змінили DOS розділ, скажімо /dev/foo7, тоді використовуйте dd(1)
для заповнення нулями перших 512 байт: dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(Дивіться fdisk(8).)
[root@cyrax ~]# sfdisk -d /dev/sdc
# partition table of /dev/sdc
unit: sectors

/dev/sdc1 : start= 2048, size=468858880, Id=fd
/dev/sdc2 : start= 0, size= 0, Id= 0
/dev/sdc3 : start= 0, size= 0, Id= 0
/dev/sdc4 : start= 0, size= 0, Id= 0
[root@cyrax ~]#


[root@cyrax ~]# grub
Probing devices to guess BIOS drives. This may take a long time.
Unknown partition table signature


GNU GRUB version 0.97 (640K lower / 3072K upper memory)

[ Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename.]
grub> find /boot/grub/stage1
find /boot/grub/stage1
(hd2,0)
(hd8,0)
grub> root (hd2,0)
root (hd2,0)
Filesystem type is ext2fs, partition type 0xfd
grub> setup (hd2)
setup (hd2)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd2)"... 27 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd2) (hd2)1+27 p (hd2,0)/boot/grub/stage2 /boot/grub/grub.conf"... succeeded
Done.
grub> root (hd8,0)
root (hd8,0)
Filesystem type is ext2fs, partition type 0xfd
grub> setup (hd8)
setup (hd8)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd8)"... 27 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd8) (hd8)1+27 p (hd8,0)/boot/grub/stage2 /boot/grub/grub.conf"... succeeded
Done.
grub> ^C
[root@cyrax ~]#

Hits: 507
0

https://www.howtoforge.com/how-to-resize-raid-partitions-shrink-and-grow-software-raid

 

How To Resize RAID Partitions (Shrink & Grow) (Software RAID)

Version 1.0 
Author: Falko Timme 


This article describes how you can shrink and grow existing software RAID partitions. I have tested this with non-LVM RAID1 partitions that use ext3 as the file system. I will describe this procedure for an intact RAID array and also a degraded RAID array.

If you use LVM on your RAID partitions, the procedure will be different, so do not use this tutorial in this case!

I do not issue any guarantee that this will work for you!

 

1 Preliminary Note

A few days ago I found out that one of my servers had a degraded RAID1 array (/dev/md2, made up of /dev/sda3 and /dev/sdb3/dev/sda3 had failed, /dev/sdb3 was still active):

server1:~# cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sdb3[1]
      4594496 blocks [2/1] [_U]

md1 : active raid1 sda2[0] sdb2[1]
      497920 blocks [2/2] [UU]

md0 : active raid1 sda1[0] sdb1[1]
      144448 blocks [2/2] [UU]

unused devices: <none>
server1:~#

I tried to fix it (using this tutorial), but unfortunately at the end of the sync process (with 99.9% complete), the sync stopped and started over again. As I found out, this happened because there were some defect sectors at the end of the (working) partition /dev/sdb3 - this was in /var/log/kern.log:

Nov 22 18:51:06 server1 kernel: sdb: Current: sense key: Aborted Command
Nov 22 18:51:06 server1 kernel: end_request: I/O error, dev sdb, sector 1465142856

So this was the worst case that could happen - /dev/sda dead and /dev/sdb about to die. To fix this, I imagined I could shrink /dev/md2 so that it leaves out the broken sectors at the end of /dev/sdb3, then add the new /dev/sda3 (from the replaced hard drive) to /dev/md2, let the sync finish, remove /dev/sdb3 from the array and replace /dev/sdb with a new hard drive, add the new /dev/sdb3 to /dev/md2, and grow /dev/md2 again.

This is one of the use cases for the following procedures (I will describe the process for an intact array and a degraded array).

Please note that /dev/md2 is my system partition (mount point /), so I had to use a rescue system (e.g. Knoppix Live-CD) to resize the array. If the array you want to resize is not your system partition, you probably don't need to boot into a rescue system; but in either case, make sure that the array is unmounted!

 

2 Intact Array

I will describe how to resize the array /dev/md2, made up of /dev/sda3 and /dev/sdb3.

 

2.1 Shrinking An Intact Array

Boot into your rescue system and activate all needed modules:

modprobe md
modprobe linear
modprobe multipath
modprobe raid0
modprobe raid1
modprobe raid5
modprobe raid6
modprobe raid10

Then activate your RAID arrays:

cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf_orig
mdadm --examine --scan >> /etc/mdadm/mdadm.conf

mdadm -A --scan

Run

e2fsck -f /dev/md2

to check the file system.

/dev/md2 has a size of 40GB; I want to shrink it to 30GB. First we have to shrink the file system with resize2fs; to make sure that the file system fits into the 30GB, we make it a little bit smaller (25GB) so we have a little security margin, shrink /dev/md2 to 30GB, and the resize the file system (again with resize2fs) to the max. possible value:

resize2fs /dev/md2 25G

Now we shrink /dev/md2 to 30GB. The --size value must be in KiBytes (30 x 1024 x 1024 = 31457280); make sure it can be divided by 64:

mdadm --grow /dev/md2 --size=31457280

Next we grow the file system to the largest possible value (if you don't specify a size, resize2fs will use the largest possible value)...

resize2fs /dev/md2

... and run a file system check again:

e2fsck -f /dev/md2

That's it - you can now boot into the normal system again.

 

2.2 Growing An Intact Array

Boot into your rescue system and activate all needed modules:

modprobe md
modprobe linear
modprobe multipath
modprobe raid0
modprobe raid1
modprobe raid5
modprobe raid6
modprobe raid10

Then activate your RAID arrays:

cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf_orig
mdadm --examine --scan >> /etc/mdadm/mdadm.conf

mdadm -A --scan

Now we can grow /dev/md2 as follows:

mdadm --grow /dev/md2 --size=max

--size=max means the largest possible value. You can as well specify a size in KiBytes (see previous chapter).

Then we run a file system check...

e2fsck -f /dev/md2

..., resize the file system...

resize2fs /dev/md2

... and check the file system again:

e2fsck -f /dev/md2

Afterwards you can boot back into your normal system.

 

How To Resize RAID Partitions (Shrink & Grow) (Software RAID) - Page 2

3 Degraded Array

I will describe how to resize the degraded array /dev/md2, made up of /dev/sda3 and /dev/sdb3, where /dev/sda3 has failed:

server1:~# cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sdb3[1]
      4594496 blocks [2/1] [_U]

md1 : active raid1 sda2[0] sdb2[1]
      497920 blocks [2/2] [UU]

md0 : active raid1 sda1[0] sdb1[1]
      144448 blocks [2/2] [UU]

unused devices: <none>
server1:~#


 

3.1 Shrinking A Degraded Array

Before we boot into the rescue system, we must make sure that /dev/sda3 is really removed from the array:

mdadm --manage /dev/md2 --fail /dev/sda3
mdadm --manage /dev/md2 --remove /dev/sda3

Then we overwrite the superblock on /dev/sda3 (this is very important - if you forget this, the system might now boot anymore after the resizal!):

mdadm --zero-superblock /dev/sda3

Boot into your rescue system and activate all needed modules:

modprobe md
modprobe linear
modprobe multipath
modprobe raid0
modprobe raid1
modprobe raid5
modprobe raid6
modprobe raid10

Then activate your RAID arrays:

cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf_orig
mdadm --examine --scan >> /etc/mdadm/mdadm.conf

mdadm -A --scan

Run

e2fsck -f /dev/md2

to check the file system.

/dev/md2 has a size of 40GB; I want to shrink it to 30GB. First we have to shrink the file system with resize2fs; to make sure that the file system fits into the 30GB, we make it a little bit smaller (25GB) so we have a little security margin, shrink /dev/md2 to 30GB, and the resize the file system (again with resize2fs) to the max. possible value:

resize2fs /dev/md2 25G

Now we shrink /dev/md2 to 30GB. The --size value must be in KiBytes (30 x 1024 x 1024 = 31457280); make sure it can be divided by 64:

mdadm --grow /dev/md2 --size=31457280

Next we grow the file system to the largest possible value (if you don't specify a size, resize2fs will use the largest possible value)...

resize2fs /dev/md2

... and run a file system check again:

e2fsck -f /dev/md2

Then boot into the normal system again and run the following two commands to add /dev/sda3 back to the array /dev/md2:

mdadm --zero-superblock /dev/sda3
mdadm -a /dev/md2 /dev/sda3

Take a look at

cat /proc/mdstat

and you should see that /dev/sdb3 and /dev/sda3 are now being synced.

 

3.2 Growing A Degraded Array

Before we boot into the rescue system, we must make sure that /dev/sda3 is really removed from the array:

mdadm --manage /dev/md2 --fail /dev/sda3
mdadm --manage /dev/md2 --remove /dev/sda3

Then we overwrite the superblock on /dev/sda3 (this is very important - if you forget this, the system might now boot anymore after the resizal!):

mdadm --zero-superblock /dev/sda3

Boot into your rescue system and activate all needed modules:

modprobe md
modprobe linear
modprobe multipath
modprobe raid0
modprobe raid1
modprobe raid5
modprobe raid6
modprobe raid10

Then activate your RAID arrays:

cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf_orig
mdadm --examine --scan >> /etc/mdadm/mdadm.conf

mdadm -A --scan

Now we can grow /dev/md2 as follows:

mdadm --grow /dev/md2 --size=max

--size=max means the largest possible value. You can as well specify a size in KiBytes (see previous chapter).

Then we run a file system check...

e2fsck -f /dev/md2

..., resize the file system...

resize2fs /dev/md2

... and check the file system again:

e2fsck -f /dev/md2

Then boot into the normal system again and run the following two commands to add /dev/sda3 back to the array /dev/md2:

mdadm --zero-superblock /dev/sda3
mdadm -a /dev/md2 /dev/sda3

Take a look at

cat /proc/mdstat

and you should see that /dev/sdb3 and /dev/sda3 are now being synced.

Hits: 518
0

Posted by on in Uncategorized

 

http://lucene.apache.org/solr/

https://stats.stackexchange.com/questions/151349/what-is-the-best-algorithm-to-find-similar-text-documents?newreg=5f1832ee504a465d8da7a7d00a1e0f1e

https://stackoverflow.com/questions/15704644/difference-between-solr-and-lucene

 

мета: найти схожі файли між 30 000 000...40 000 000 файлами (близько 500 гігабайт)

1) є надія що це зможе зробити solr 

2) створюємо веб сервер через який є доступ до тих файлів 

3) налаштовуємо якийсь павучок Nutch - http://lucene.apache.org/nutch/

https://stackoverflow.com/questions/1781247/does-solr-do-web-crawling

надіємося що то все якось збереться в купу

===================================

We found version 1.6.0_38, using command 'java -version', with response:
java version "1.6.0_38"

Please install latest version of Java 1.8 or set JAVA_HOME properly. 

 

http://www.itzgeek.com/how-tos/linux/centos-how-tos/how-to-install-java-sdk-1-8-on-rhel-6-centos-6.html

 

yum list *jdk*

yum install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64

java -version
openjdk version "1.8.0_121"
OpenJDK Runtime Environment (build 1.8.0_121-b13)
OpenJDK 64-Bit Server VM (build 25.121-b13, mixed mode)

 

bin/solr create -c mycolection

runuser -l solr -c '/solr/bin/solr create -c colect2'

Скануємо папку 

/solr/solr/bin/post -c mycolection /folder2/2017/08/13

 

 

Hits: 871
0

Posted by on in Uncategorized

npm update socket.io

https://socket.io/

 

 

  1. Download npm, the NodeJS Package Manager
  2. Install npm
  3. Open the terminal and execute the following command to install socket.io

    npm install socket.io
  4. When you want to update it, execute the following command on the terminal

    npm update socket.io
Alternatively you can execute

npm update -g in order to update globally installed packages.

 

https://stackoverflow.com/questions/30419397/how-do-i-check-the-version-of-socket-io-and-update-it

Hits: 794
0

Posted by on in Uncategorized

при будь якій роботі з дисками з яких грузиться лінукс треба обовязково перевіряти налаштування grub

ситуація така, 

в робочій системі яка складалася з raid 1  (mdadm)

на ходу було замінено по черзі два диска (тобто всі диски)

після перезавантаження вискочило чорний екран і лише 

error 17 

і більше нічого

суть ремонту: 

завантажуємо сервер з загрузочної флешки 

в мому випадку Parted_Magic_2015.03.06 http://rutracker.org/forum/viewtopic.php?t=4977149

флешка загрузилася тепер заходимо на наш системний розділ (щоб він змонтувася)

далі:

 

Welcome - Parted Magic (Linux 3.18.7-pmagic64)

root@partedmagic:~# grub
-bash: grub: command not found
root@partedmagic:~# sudo /media/md126/sbin/grub
Probing devices to guess BIOS drives. This may take a long time.


GNU GRUB version 0.97 (640K lower / 3072K upper memory)

[ Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename.]
grub> find /boot/grub/stage1
find /boot/grub/stage1
(hd0,1)
(hd1,1)
grub> root (hd1,1)
root (hd1,1)
Filesystem type is ext2fs, partition type 0xfd
grub> setup (hd1)
setup (hd1)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd1)"... 27 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd1) (hd1)1+27 p (hd1,1)/boot/grub/stage2 /boot/grub/grub.conf"... succeeded
Done.
grub> root (hd0,1)
root (hd0,1)
Filesystem type is ext2fs, partition type 0xfd
grub> setup (hd0)
setup (hd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 27 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd0) (hd0)1+27 p (hd0,1)/boot/grub/stage2 /boot/grub/grub.conf"... succeeded
Done.
grub> ^C
root@partedmagic:~#

 

ми встановили груб на два диска. 

це вже пів роботи зроблено!! але!!!!!

перевяряємо чи ті самі диски стоять у файлах: 

/boot/grub/device.map

/boot/grub/device.map/grub.conf

default=0
timeout=5
splashimage=(hd0,1)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-642.el6.x86_64)
root (hd0,1)
kernel /boot/vmlinuz-2.6.32-642.el6.x86_64 ro root=UUID=d6420************************a757 LANG=uk_UA.UTF-8 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us SYSFONT=latarcyrheb-sun16 crashkernel=128M quiet
initrd /boot/initramfs-2.6.32-642.el6.x86_64.img

 

на всяк випадок /etc/fstab також перевірити 

 

Hits: 584
0
[root var]# mdadm --detail /dev/md126
/dev/md126:
Version : 1.0
Creation Time : Mon Dec 14 12:11:26 2015
Raid Level : raid1
Array Size : 125033344 (119.24 GiB 128.03 GB)
Used Dev Size : 125033344 (119.24 GiB 128.03 GB)
Raid Devices : 3
Total Devices : 2
Persistence : Superblock is persistent

Intent Bitmap : Internal

Update Time : Fri Jun 16 21:50:39 2017
State : active, degraded
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0

Name : localhost.localdomain:ssdraid
UUID : f3c9263f:6ae4f489:1fc15cc0:e38807fc
Events : 794672

Number Major Minor RaidDevice State
2 8 2 0 active sync /dev/sda2
3 8 18 1 active sync /dev/sdb2
4 0 0 4 removed
[roo var]# mdadm -G /dev/md126 --raid-devices=2
raid_disks for /dev/md126 set to 2
[ro28 var]# mdadm --detail /dev/md126
/dev/md126:
Version : 1.0
Creation Time : Mon Dec 14 12:11:26 2015
Raid Level : raid1
Array Size : 125033344 (119.24 GiB 128.03 GB)
Used Dev Size : 125033344 (119.24 GiB 128.03 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent

Intent Bitmap : Internal

Update Time : Fri Jun 16 21:53:38 2017
State : active
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0

Name : localhost.localdomain:ssdraid
UUID : f3c9263f:6ae4f489:1fc15cc0:e38807fc
Events : 795199

Number Major Minor RaidDevice State
2 8 2 0 active sync /dev/sda2
3 8 18 1 active sync /dev/sdb2
Tagged in: mdadm raid
Hits: 614
0

Posted by on in Uncategorized

прошивку качати тут :https://www.broadcom.com/support/download-search/?pg=&pf=&pn=SAS+9211-8i+Host+Bus+Adapter&po=&pa=&dk=#tab-current-Firmware

IR - Integrated RAID

IT- Initiator-Target, (Host Bus Adapter HBA)

не робити! створюємо завантажувальну влешку з досом 

не робити! шукаємо в гуглі: bootable usb dos

бо вибило “Failed to initialize PAL.

 

тому читаємо це і це

http://brycv.com/blog/2012/flashing-it-firmware-to-lsi-sas9211-8i/

https://serverfault.com/questions/679175/failed-to-initialize-pal-while-upgrading-an-lsi-9211-8i-to-it

в результаті в біосі є пункт який відкриває "efi"

для материнок які немають ефі мабуть треба пробувати досом

 

в результаті процедура прошивки і начкбто не складна але зібрати все в купу трохи заберає часу.  

 

http://true-system.blogspot.com/2011/07/lsi-9211-48i-it.html

 

 

mount fs1

fs1:

 

sas2flash.efi -o -e 7 (sas2flash.efi -o -e 6 якщо не стерати серійник .. серійник знаходиться на наклейці на платі)

sas2flash.efi -o -f 2118it.bin -b mptsas2.rom  -sasadd 500605P358814209

================

 196_SAS2Flash_ReferenceGuide.pdf

https://www.broadcom.com/support/knowledgebase/1211161495925/flash-upgrading-firmware-on-lsi-sas-hbas-upgraded-firmware-on-92

 

також можна пршивати з віндовсе через CMD

https://www.broadcom.com/support/download-search/?pg=&pf=&pn=SAS+9211-8i+Host+Bus+Adapter&po=&pa=&dk=#tab-archive-Firmware

качаємо в розділі фірмваре -> інсталер

запускаємо командний рядок 

переходимо на потрібний диск 

D:

запускаємо команду яку треба 

sas2flash.exe -o -list

 

Tagged in: lsi raid sas
Hits: 694
0

Posted by on in Uncategorized

аємо клон IMAX B6 на контролері  ATMEGA32A куплений за 15$ з копійками

потім докуплено на аліекспресі USBISP USBASP  AVR Programmer 1,2$

основні ссилки:

https://youtu.be/hfklF_EA1tk

https://github.com/stawel/cheali-charger

https://github.com/stawel/cheali-charger/blob/master/docs/flashing.md

http://www.fischl.de/usbasp/

Hits: 839
5 1

/вираз/ між ці дві риски поміщаємо вираз

/вираз/ i символ і означає прапорець

 

  • . = any char
  • \. = the actual dot character
  • .? = .{0,1} = match any char zero or one times
  • .* = .{0,} = match any char zero or more times
  • .+ = .{1,} = match any char one or more times
| OR operator when multiple patterns are specified
abc Check if string contains a substring abc
^abc Check if string starts with abc

 

([0-9]+) будьякі цифри

 

PatternWhat the pattern matches
^ Beginning of string
$ End of string
. Any single character
[...] Any character listed between the square brackets
[^...] Any character not listed between the square brackets
p1|p2|p3 Alternation; matches any of the patterns p1, p2, or p3
* Zero or more instances of preceding element
+ One or more instances of preceding element
{n} n instances of preceding element
{m,n} m through n instances of preceding element
Character classes
. any character except newline
\w \d \s word, digit, whitespace
\W \D \S not word, digit, whitespace
[abc] any of a, b, or c
[^abc] not a, b, or c
[a-g] character between a & g
Anchors
^abc$ start / end of the string
\b word boundary
Escaped characters
\. \* \\ escaped special characters
\t \n \r tab, linefeed, carriage return
\u00A9 unicode escaped ©
Groups & Lookaround
(abc) capture group
\1 backreference to group #1
(?:abc) non-capturing group
(?=abc) positive lookahead
(?!abc) negative lookahead
Quantifiers & Alternation
a* a+ a? 0 or more, 1 or more, 0 or 1
a{5} a{2,} exactly five, two or more
a{1,3} between one & three
a+? a{2,}? match as few as possible
ab|cd

match ab or cd

 


 

http://www.rubular.com/r/hXVZXQu45h

 

http://www.regexpal.com/

 

В регулярном выражении могут использоваться любые специальные символы/структуры из числа приведенных ниже:

^
Соответствие началу строки.mysql> SELECT "fo\nfo" REGEXP "^fo$"; -> 0 mysql> SELECT "fofo" REGEXP "^fo"; -> 1
$
Соответствие концу строки.mysql> SELECT "fo\no" REGEXP "^fo\no$"; -> 1 mysql> SELECT "fo\no" REGEXP "^fo$"; -> 0
.
Соответствие любому символу (включая перевод строки).mysql> SELECT "fofo" REGEXP "^f.*"; -> 1 mysql> SELECT "fo\nfo" REGEXP "^f.*"; -> 1
a*
Соответствие любой последовательности из нуля или более символов "a".mysql> SELECT "Ban" REGEXP "^Ba*n"; -> 1 mysql> SELECT "Baaan" REGEXP "^Ba*n"; -> 1 mysql> SELECT "Bn" REGEXP "^Ba*n"; -> 1
a+
Соответствие любой последовательности из одного или более символов "a ".mysql> SELECT "Ban" REGEXP "^Ba+n"; -> 1 mysql> SELECT "Bn" REGEXP "^Ba+n"; -> 0
a?
Соответствие как нулю, так и одному символу "a".mysql> SELECT "Bn" REGEXP "^Ba?n"; -> 1 mysql> SELECT "Ban" REGEXP "^Ba?n"; -> 1 mysql> SELECT "Baan" REGEXP "^Ba?n"; -> 0
de|abc
Соответствие как последовательности de, так и последовательности abc.mysql> SELECT "pi" REGEXP "pi|apa"; -> 1 mysql> SELECT "axe" REGEXP "pi|apa"; -> 0 mysql> SELECT "apa" REGEXP "pi|apa"; -> 1 mysql> SELECT "apa" REGEXP "^(pi|apa)$"; -> 1 mysql> SELECT "pi" REGEXP "^(pi|apa)$"; -> 1 mysql> SELECT "pix" REGEXP "^(pi|apa)$"; -> 0
(abc)*
Соответствие нулю или более вхождениям последовательности abc.mysql> SELECT "pi" REGEXP "^(pi)*$"; -> 1 mysql> SELECT "pip" REGEXP "^(pi)*$"; -> 0 mysql> SELECT "pipi" REGEXP "^(pi)*$"; -> 1
{1}
{2,3}
Существует более общий способ написания регулярных выражений, позволяющий установить соответствия для нескольких вхождений предшествующего элемента.
a*
Можно записать как a{0,}.
a+
Можно записать как a{1,}.
a?
Можно записать как a{0,1}.
Точнее говоря, элемент, за которым следует ограничение, содержащее одно целое число i без запятой, соответствует последовательности, в точности состоящей из i вхождений данного элемента. Если за элементом следует ограничение, содержащее одно число i и запятую, то устанавливается соответствие для последовательности, содержащей i или более вхождений данного элемента. Если за элементом следует ограничение, содержащее два целых числа i и j, то устанавливается соответствие для последовательности от i до j (включительно) вхождений данного элемента. Оба аргумента должны находится в диапазоне от 0 до RE_DUP_MAX (по умолчанию 255) включительно. Если существуют оба аргумента, то второй должен быть больше первого или равен ему.
[a-dX]
[^a-dX]
Устанавливает соответствие для любого символа, являющегося (или не являющегося, если используется ^) символом abcd или X. Для литерального включения символа ] следует сразу же после него написать открывающую скобку [. Для литерального включения символа - он должен быть написан первым или последним. Таким образом, выражение [0-9] устанавливает соответствие для любой десятичной цифры. Любой символ, для которого не задано определенное значение внутри пары скобок [], не имеет специального значения и совпадает только с самим собой.mysql> SELECT "aXbc" REGEXP "[a-dXYZ]"; -> 1 mysql> SELECT "aXbc" REGEXP "^[a-dXYZ]$"; -> 0 mysql> SELECT "aXbc" REGEXP "^[a-dXYZ]+$"; -> 1 mysql> SELECT "aXbc" REGEXP "^[^a-dXYZ]+$"; -> 0 mysql> SELECT "gheis" REGEXP "^[^a-dXYZ]+$"; -> 1 mysql> SELECT "gheisa" REGEXP "^[^a-dXYZ]+$"; -> 0
[[.characters.]]
Последовательность символов данного элемента сравнения. Эта последовательность представляет собой единственный элемент из списка в выражении в скобках. Выражение в скобках, содержащее многосимвольный сравнивающий элемент, может, следовательно, искать соответствие более, чем одного, например, если последовательность сравнения включает в себя элемент сравнения ch, то регулярное выражение [[.ch.]]*cустанавливает  соответствие с первыми пятью символами выражения chchcc.
[=character_class=]
Класс эквивалентности, означающий, что последовательности символов всех элементов сравнения, включенных в данный класс, эквивалентны между собой. Например, если o и (+) являются членами класса эквивалентности, то последовательности [[=o=]][[=(+)=]] и [o(+)] все являются синонимичными. Класс эквивалентности может не быть конечной точкой диапазона.
[:character_class:]
Имя класса символов, заключенное внутри выражения в скобках [: имя :], обозначает список всех символов, принадлежащих данному классу. Имена стандартных классов символов следующие:
Имя Имя Имя
alnum digit punct
alpha graph space
blank lower upper
cntrl print xdigit
Они обозначают классы символов, определенные на странице ctype(3). Локаль может предоставлять другие классы. Класс символов не может использоваться как конечная точка диапазона.mysql> SELECT "justalnums" REGEXP "[[:alnum:]]+"; -> 1 mysql> SELECT "!!" REGEXP "[[:alnum:]]+"; -> 0
[[:<:]]
[[:>:]]
Эти выражения устанавливают соответствие с нулевой строкой в начале и в конце слова соответственно. Слово определяется как последовательность символов слова, которой не предшествуют и за которой не следуют символы слова. Под символом слова понимается любая буква или цифра (как определено в ctype(3)) или подчеркивание (_).mysql> SELECT "a word a" REGEXP "[[:<:]]word[[:>:]]"; -> 1 mysql> SELECT "a xword a" REGEXP "[[:<:]]word[[:>:]]"; -> 0

mysql> SELECT "weeknights" REGEXP "^(wee|week)(knights|nights)$"; -> 1

 

Hits: 707
0

Posted by on in Uncategorized
# memtester 5000 1
memtester version 4.2.1 (64-bit)
Copyright (C) 2010 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 4096
pagesizemask is 0xfffffffffffff000
want 5000MB (5242880000 bytes)
got 5000MB (5242880000 bytes), trying mlock ...locked.
Loop 1/1:
Stuck Address : ok
Random Value : ok
Compare XOR : ok
Compare SUB : ok
Compare MUL : ok
Compare DIV : ok
Compare OR : ok
Compare AND : ok
Sequential Increment: ok
Solid Bits : ok
Block Sequential : ok
Checkerboard : ok
Bit Spread : ok
Bit Flip : ok
Walking Ones : ok
Walking Zeroes : ok
8-bit Writes : ok
16-bit Writes : ok

Done.
Hits: 689
0

Posted by on in Uncategorized

[ro47 ~]# upsc -l
myups
[ro47 ~]# upsc myups

battery.charge: 100
battery.charge.low: 10
battery.charge.warning: 50
battery.mfr.date: 20xxxxx4
battery.runtime: 3060
battery.runtime.low: 120
battery.temperature: 31.5
battery.type: PbAc
battery.voltage: 27.4
battery.voltage.nominal: 24.0
device.mfr: American Power Conversion
device.model: Smxxxxx00
device.serial: ASxxxxxxxxx
device.type: ups
driver.name: usbhid-ups
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.version: 2.6.5
driver.version.data: APC HID 0.95
driver.version.internal: 0.37
input.sensitivity: high
input.transfer.high: 253
input.transfer.low: 208
input.transfer.reason: input voltage out of range
input.voltage: 216.0
output.current: 1.45
output.frequency: 50.0
output.voltage: 216.0
output.voltage.nominal: 220.0
ups.beeper.status: enabled
ups.delay.shutdown: 20
ups.delay.start: 30
ups.firmware: 652.12.I
ups.firmware.aux: 4.2
ups.load: 42.9
ups.mfr: American Power Conversion
ups.mfr.date: 20xxxxxx9
ups.model: Smxxxxxxxxx0
ups.productid: 0002
ups.serial: Axxxxxxxxxx
ups.status: OL
ups.test.result: No test initiated
ups.timer.reboot: -1
ups.timer.shutdown: -1
ups.timer.start: -1
ups.vendorid: 051d

 

 

[root47 ~]# upscmd -l myups
Instant commands supported on UPS [myups]:

beeper.disable - Disable the UPS beeper
beeper.enable - Enable the UPS beeper
beeper.mute - Temporarily mute the UPS beeper
beeper.off - Obsolete (use beeper.disable or beeper.mute)
beeper.on - Obsolete (use beeper.enable)
load.off - Turn off the load immediately
load.off.delay - Turn off the load with a delay (seconds)
load.on - Turn on the load immediately
load.on.delay - Turn on the load with a delay (seconds)
shutdown.reboot - Shut down the load briefly while rebooting the UPS
shutdown.return - Turn off the load and return when power is back
shutdown.stayoff - Turn off the load and remain off
shutdown.stop - Stop a shutdown in progress
test.battery.start.deep - Start a deep battery test
test.battery.start.quick - Start a quick battery test
test.battery.stop - Stop the battery test
test.panel.start - Start testing the UPS panel
test.panel.stop - Stop a UPS panel test

 

upscmd -u user -p pas111 myups test.battery.start.quick

 

Tagged in: ups
Hits: 656
0

Posted by on in Uncategorized
Hits: 920
0