3. Директива AllowOwerride
AllowOwerride позволяет определить какие директивы можно перезаписать в файле .htaccess.
2. Директива Indexes
Директива позволяет просматривать содержимое каталога в отсутствии индексного файла (index.html, index.php и пр.).
Как правило эту директиру отключают по соображением безопасности и при попытке просмотреть содержимое каналога сервер выдаст 403 ошибку - "error] [client 10.20.30.40] Directory index forbidden by Options directive: /var/www/noc/prj/"
В "/var/www/noc/prj/" лежат файлы которым надо предоставить доступ (см. ниже), в этом случае разрешаем индексирование и конфиг будет выглядеть след. образом:
<Directory "/var/www/noc/prj">
Options Indexes
Order deny,allow
Deny from all
Allow from 10.20.30.40 10.20.31.40
</Directory>
1. Директива Order
Директива позволяет ограничить доступ к каталогу или файлу по ip адресу и может быть прописана в файле .htaccess или в настройках сайта.
Директирва имет два режима работы - "Order deny,allow" или "Order allow,deny".
deny,allow - запрещаем доступ со всех ip и разрешаем с определенных.
allow,deny - разрешаем доступ со всех ip и запрещаем с определенных.
Пример:
Разрешаем доступ к каталогу с двух ip адресов.
<Directory "/var/www/noc/prj">
Order deny,allow
Deny from all
Allow from 10.20.30.40 10.20.31.40
</Directory>
Показаны сообщения с ярлыком linux. Показать все сообщения
Показаны сообщения с ярлыком linux. Показать все сообщения
20160509
20160130
Быстрые заметки по mysql
8. Сбросить рутовый пароль
Останавливаем mysql
# /etc/init.d/mysqld stop
Stopping mysqld: [ OK ]
Запускаем mysql в безопасном режиме.
# /usr/bin/mysqld_safe --skip-grant-tables --user=root &
[1] 6363
# 160206 12:54:08 mysqld_safe Logging to '/var/log/mysqld.log'.
160206 12:54:09 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
Заходим под рутом без пароля.
# mysql -u root
Переключаемся на базу mysql.
mysql> USE mysql;
Смотрим список таблиц и содержаение таблицы user.
mysql> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
...
| user |
+---------------------------+
23 rows in set (0.00 sec)
mysql> SELECT * FROM user
В таблице user так же есть пароли и настройки всех остальных пользователей.
Задаем новый пароль P@s$ = меняем значение поля Password
mysql> UPDATE user SET Password=PASSWORD('P@s$') WHERE User='root';
Функция "PASSWORD()" используется для шифрования.
Выходим и перезапускаем mysql
mysql> exit
Bye
# /etc/init.d/mysqld restart
160206 13:12:50 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
Stopping mysqld: [ OK ]
Starting mysqld: [ OK ]
[1]+ Done /usr/bin/mysqld_safe --skip-grant-tables --user=root
7. Изменить значение поля в строке
Есть строка.
mysql> SELECT * FROM logcon_views;
+----+-------------+-------------------------------------+--------+---------+
| ID | DisplayName | Columns | userid | groupid |
+----+-------------+-------------------------------------+--------+---------+
| 2 | SRX-FILTER | SRX, TIME_UTC_6, TIME_UTC, msg, 111 | NULL | NULL |
+----+-------------+-------------------------------------+--------+---------+
1 row in set (0.00 sec)
6. Удалить строку из таблицы
Есть такая таблица.
mysql> select * from logcon_fields;
+--------------+------------------+--------------+
| FieldID | FieldDefine | FieldCaption |
+--------------+------------------+--------------+
| SRX | SYSLOG_SRX | SRX |
| TIME (UTC+6) | SYSLOG_TIME_UTC6 | TIME (UTC+6) |
+--------------+------------------+--------------+
2 rows in set (0.00 sec)
]# cat /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql
CREATE DATABASE rsyslog_db;
USE rsyslog_db;
CREATE TABLE SystemEvents
(
ID int unsigned not null auto_increment primary key,
CustomerID bigint,
#....
SystemID int NULL
);
CREATE TABLE SystemEventsProperties
(
ID int unsigned not null auto_increment primary key,
SystemEventID int NULL ,
ParamName varchar(255) NULL ,
ParamValue text NULL
);
Проверяем.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| cacti_db |
| mysql |
| racktables_db |
| rsyslog_db |
| viewvc_db |
+--------------------+
6 rows in set (0.00 sec)
mysql> use rsyslog_db;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+------------------------+
| Tables_in_rsyslog_db |
+------------------------+
| SystemEvents |
| SystemEventsProperties |
+------------------------+
2 rows in set (0.00 sec)
6. Дать права пользователю на базу и задать пароль.
mysql> grant all privileges on rsyslog_db.* to rsyslog_user@localhost identified by 'P@Ss';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
5. Создать пользователя
mysql> create user rsyslog_user@localhost;
Query OK, 0 rows affected (0.00 sec)
4. Удалить пользователя
mysql> drop user rsyslog_user@localhost;
Query OK, 0 rows affected (0.00 sec)
3. Удалить базу
mysql> drop database rsyslog_db;
Query OK, 13 rows affected (0.00 sec)
2. Посмотреть имеющиеся базы
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| cacti_db |
| mysql |
| racktables_db |
| rsyslog_db |
| viewvc_db |
+--------------------+
6 rows in set (0.00 sec)
1. Заход
Заход под root на localhost, пароль надо ввести.
# mysql -u root -p
Enter password:
Останавливаем mysql
# /etc/init.d/mysqld stop
Stopping mysqld: [ OK ]
Запускаем mysql в безопасном режиме.
# /usr/bin/mysqld_safe --skip-grant-tables --user=root &
[1] 6363
# 160206 12:54:08 mysqld_safe Logging to '/var/log/mysqld.log'.
160206 12:54:09 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
Заходим под рутом без пароля.
# mysql -u root
Переключаемся на базу mysql.
mysql> USE mysql;
Смотрим список таблиц и содержаение таблицы user.
mysql> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
...
| user |
+---------------------------+
23 rows in set (0.00 sec)
mysql> SELECT * FROM user
В таблице user так же есть пароли и настройки всех остальных пользователей.
Задаем новый пароль P@s$ = меняем значение поля Password
mysql> UPDATE user SET Password=PASSWORD('P@s$') WHERE User='root';
Функция "PASSWORD()" используется для шифрования.
Выходим и перезапускаем mysql
mysql> exit
Bye
# /etc/init.d/mysqld restart
160206 13:12:50 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
Stopping mysqld: [ OK ]
Starting mysqld: [ OK ]
[1]+ Done /usr/bin/mysqld_safe --skip-grant-tables --user=root
7. Изменить значение поля в строке
Есть строка.
mysql> SELECT * FROM logcon_views;
+----+-------------+-------------------------------------+--------+---------+
| ID | DisplayName | Columns | userid | groupid |
+----+-------------+-------------------------------------+--------+---------+
| 2 | SRX-FILTER | SRX, TIME_UTC_6, TIME_UTC, msg, 111 | NULL | NULL |
+----+-------------+-------------------------------------+--------+---------+
1 row in set (0.00 sec)
Хотим изменить значение поля Columns в строке с ID равным 2.
mysql> UPDATE logcon_views SET Columns = 'SRX, TIME_UTC_6, TIME_UTC, msg' WHERE ID = 2;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
6. Удалить строку из таблицы
Есть такая таблица.
mysql> select * from logcon_fields;
+--------------+------------------+--------------+
| FieldID | FieldDefine | FieldCaption |
+--------------+------------------+--------------+
| SRX | SYSLOG_SRX | SRX |
| TIME (UTC+6) | SYSLOG_TIME_UTC6 | TIME (UTC+6) |
+--------------+------------------+--------------+
2 rows in set (0.00 sec)
Хотим удалить вторую строку.
mysql> DELETE FROM logcon_fields WHERE FieldID ="TIME (UTC+6)";
Query OK, 1 row affected (0.00 sec)
5. Создать базу из шаблона
Есть вот такой шаблон базы для rsyslog.]# cat /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql
CREATE DATABASE rsyslog_db;
USE rsyslog_db;
CREATE TABLE SystemEvents
(
ID int unsigned not null auto_increment primary key,
CustomerID bigint,
#....
SystemID int NULL
);
CREATE TABLE SystemEventsProperties
(
ID int unsigned not null auto_increment primary key,
SystemEventID int NULL ,
ParamName varchar(255) NULL ,
ParamValue text NULL
);
Что бы создать эту базу даем след. команду:
# mysql -u root -p < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql
# mysql -u root -p < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| cacti_db |
| mysql |
| racktables_db |
| rsyslog_db |
| viewvc_db |
+--------------------+
6 rows in set (0.00 sec)
mysql> use rsyslog_db;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+------------------------+
| Tables_in_rsyslog_db |
+------------------------+
| SystemEvents |
| SystemEventsProperties |
+------------------------+
2 rows in set (0.00 sec)
6. Дать права пользователю на базу и задать пароль.
mysql> grant all privileges on rsyslog_db.* to rsyslog_user@localhost identified by 'P@Ss';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
5. Создать пользователя
mysql> create user rsyslog_user@localhost;
Query OK, 0 rows affected (0.00 sec)
mysql> drop user rsyslog_user@localhost;
Query OK, 0 rows affected (0.00 sec)
3. Удалить базу
mysql> drop database rsyslog_db;
Query OK, 13 rows affected (0.00 sec)
2. Посмотреть имеющиеся базы
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| cacti_db |
| mysql |
| racktables_db |
| rsyslog_db |
| viewvc_db |
+--------------------+
6 rows in set (0.00 sec)
1. Заход
Заход под root на localhost, пароль надо ввести.
# mysql -u root -p
Enter password:
20160114
bash скрипты
3.Переместить файл и добавить в имя дату и время перемещения.
#!/bin/sh
mv /var/www/html/dump/dump.xml /var/www/html/dump/dump.xml.$(date +"%Y%m%d-%H%M")
cp /home/rkn/dump.xml /var/www/html/dump/dump.xml
2. Переместить логи которые заархивировал logrotate и удалить логи странше 60 дней.
#!/bin/sh
mv /var/log/somelog/*.gz /var/log/somelog/archive/
find /var/log/somelog/archive/ -type f -mtime +60 -delete
Культурнее.
#!/bin/bash
branch_dir=(offce1 office2)
for i in ${branch_dir[@]}; do
mv /var/log/somelog/$i/*.gz /var/log/somelog/1archive-$i/
find /var/log/somelog/1archive-$i/ -type f -mtime +60 -delete
1. Сравнить ip адрес у url без\с www
#!/bin/sh
url=$1
host $url | head -n 1
host www.$url | head -n 1
#!/bin/sh
mv /var/www/html/dump/dump.xml /var/www/html/dump/dump.xml.$(date +"%Y%m%d-%H%M")
cp /home/rkn/dump.xml /var/www/html/dump/dump.xml
2. Переместить логи которые заархивировал logrotate и удалить логи странше 60 дней.
#!/bin/sh
mv /var/log/somelog/*.gz /var/log/somelog/archive/
find /var/log/somelog/archive/ -type f -mtime +60 -delete
Культурнее.
#!/bin/bash
branch_dir=(offce1 office2)
for i in ${branch_dir[@]}; do
mv /var/log/somelog/$i/*.gz /var/log/somelog/1archive-$i/
find /var/log/somelog/1archive-$i/ -type f -mtime +60 -delete
1. Сравнить ip адрес у url без\с www
#!/bin/sh
url=$1
host $url | head -n 1
host www.$url | head -n 1
20150903
Установка VMwareTools на Centos.
1. Включаем ВМ.
2. Подключаем из esxi клиента образ с vmwaretools.
Правой кнопкой мыши по ВМ -> Guest -> Install/Upgrade VMware Tools
3. Монтируем cdrom с образом.
root@sbc2 ~
# mount /dev/cdrom /mnt
mount: block device /dev/sr0 is write-protected, mounting read-only
root@sbc2 ~
# ll /mnt/
total 62915
-r-xr-xr-x 1 root root 1970 Aug 22 2014 manifest.txt
-r-xr-xr-x 1 root root 1850 Aug 22 2014 run_upgrader.sh
-r--r--r-- 1 root root 63024310 Aug 22 2014 VMwareTools-9.4.10-2068191.tar.gz
-r-xr-xr-x 1 root root 693484 Aug 22 2014 vmware-tools-upgrader-32
-r-xr-xr-x 1 root root 702400 Aug 22 2014 vmware-tools-upgrader-64
2. Подключаем из esxi клиента образ с vmwaretools.
Правой кнопкой мыши по ВМ -> Guest -> Install/Upgrade VMware Tools
3. Монтируем cdrom с образом.
root@sbc2 ~
# mount /dev/cdrom /mnt
mount: block device /dev/sr0 is write-protected, mounting read-only
root@sbc2 ~
# ll /mnt/
total 62915
-r-xr-xr-x 1 root root 1970 Aug 22 2014 manifest.txt
-r-xr-xr-x 1 root root 1850 Aug 22 2014 run_upgrader.sh
-r--r--r-- 1 root root 63024310 Aug 22 2014 VMwareTools-9.4.10-2068191.tar.gz
-r-xr-xr-x 1 root root 693484 Aug 22 2014 vmware-tools-upgrader-32
-r-xr-xr-x 1 root root 702400 Aug 22 2014 vmware-tools-upgrader-64
4. Распаковываем архив.
root@sbc2 ~
# mkdir vmtool
root@sbc2 ~
# cd vmtool/
root@sbc2 vmtool
# tar zxpf /mnt/VMwareTools-9.4.10-2068191.tar.gz
root@sbc2 vmtool
# ll
total 4
drwxr-xr-x 7 root root 4096 Aug 22 2014 vmware-tools-distrib
root@sbc2 vmtool
# cd vmware-tools-distrib/
root@sbc2 vmware-tools-distrib
# ll
total 480
drwxr-xr-x 2 root root 4096 Aug 22 2014 bin
drwxr-xr-x 2 root root 4096 Aug 22 2014 doc
drwxr-xr-x 5 root root 4096 Aug 22 2014 etc
-rw-r--r-- 1 root root 265487 Aug 22 2014 FILES
-rw-r--r-- 1 root root 2538 Aug 22 2014 INSTALL
drwxr-xr-x 2 root root 4096 Aug 22 2014 installer
drwxr-xr-x 14 root root 4096 Aug 22 2014 lib
-rwxr-xr-x 1 root root 197302 Aug 22 2014 vmware-install.pl
5. Ставим. На все вопросы отвечаем по дефолту, просто жмем Enter.
root@sbc2 vmware-tools-distrib
# ./vmware-install.pl
Creating a new VMware Tools installer database using the tar4 format.
Installing VMware Tools.
In which directory do you want to install the binary files?
[/usr/bin]
What is the directory that contains the init directories (rc0.d/ to rc6.d/)?
[/etc/rc.d]
What is the directory that contains the init scripts?
[/etc/rc.d/init.d]
In which directory do you want to install the daemon files?
[/usr/sbin]
In which directory do you want to install the library files?
[/usr/lib/vmware-tools]
The path "/usr/lib/vmware-tools" does not exist currently. This program is
going to create it, including needed parent directories. Is this what you want?
[yes]
In which directory do you want to install the documentation files?
[/usr/share/doc/vmware-tools]
The path "/usr/share/doc/vmware-tools" does not exist currently. This program
is going to create it, including needed parent directories. Is this what you
want? [yes]
The installation of VMware Tools 9.4.10 build-2068191 for Linux completed
successfully. You can decide to remove this software from your system at any
time by invoking the following command: "/usr/bin/vmware-uninstall-tools.pl".
Before running VMware Tools for the first time, you need to configure it by
invoking the following command: "/usr/bin/vmware-config-tools.pl". Do you want
this program to invoke the command for you now? [yes]
Initializing...
Making sure services for VMware Tools are stopped.
Found a compatible pre-built module for vmci. Installing it...
Found a compatible pre-built module for vsock. Installing it...
The module vmxnet3 has already been installed on this system by another
installer or package and will not be modified by this installer.
Use the flag --clobber-kernel-modules=vmxnet3 to override.
The module pvscsi has already been installed on this system by another
installer or package and will not be modified by this installer.
Use the flag --clobber-kernel-modules=pvscsi to override.
The module vmmemctl has already been installed on this system by another
installer or package and will not be modified by this installer.
Use the flag --clobber-kernel-modules=vmmemctl to override.
The VMware Host-Guest Filesystem allows for shared folders between the host OS
and the guest OS in a Fusion or Workstation virtual environment. Do you wish
to enable this feature? [no]
Found a compatible pre-built module for vmxnet. Installing it...
The vmblock enables dragging or copying files between host and guest in a
Fusion or Workstation virtual environment. Do you wish to enable this feature?
[no]
VMware automatic kernel modules enables automatic building and installation of
VMware kernel modules at boot that are not already present. This feature can be
enabled/disabled by re-running vmware-config-tools.pl.
Would you like to enable VMware automatic kernel modules?
[no]
No X install found.
Creating a new initrd boot image for the kernel.
vmware-tools start/running
The configuration of VMware Tools 9.4.10 build-2068191 for Linux for this
running kernel completed successfully.
You must restart your X session before any mouse or graphics changes take
effect.
You can now run VMware Tools by invoking "/usr/bin/vmware-toolbox-cmd" from the
command line.
To enable advanced X features (e.g., guest resolution fit, drag and drop, and
file and text copy/paste), you will need to do one (or more) of the following:
1. Manually start /usr/bin/vmware-user
2. Log out and log back into your desktop session; and,
3. Restart your X session.
Enjoy,
--the VMware team
20150722
Быстрые заметки по wireshark\tcpdump
4. Увидеть номер vlan.
tcpdump -nnee -i eth1 -c 10
3. Захватить CDP.
tcpdump -nn -vvv -i en0 -s 1500 -c 1 'ether[20:2] == 0x2000
2. Захватить мультикаст и бродкаст.
[root@blackpc ~]# tcpdump -i eth1 -n -c 300 "broadcast or multicast"
1. Посмотреть SNI (Server Name Indication) в SSL трафике.
Wireshark
Применяем фильтры (в зависимости от версии WS):
- ssl.handshake.extensions_server_name
- ssl.handshake.extension.type == 0
- ssl.handshake.extension.type == "server_name"
Далее в отфильтрованном смотрим поле "Server Name:".
Путь:
tcpdump -nnee -i eth1 -c 10
3. Захватить CDP.
tcpdump -nn -vvv -i en0 -s 1500 -c 1 'ether[20:2] == 0x2000
2. Захватить мультикаст и бродкаст.
[root@blackpc ~]# tcpdump -i eth1 -n -c 300 "broadcast or multicast"
Wireshark
Применяем фильтры (в зависимости от версии WS):
- ssl.handshake.extensions_server_name
- ssl.handshake.extension.type == 0
- ssl.handshake.extension.type == "server_name"
Путь:
Secure Sockets Layer -->
TLS Record Layer -->
Handshake Protocol: Client Hello -->
Extension: server_name -->
Server Name Indication extension -->
Server Name: xakep.ru
Используем ssl.handshake.extension.data contains "xakep.ru" когда надо отфильтровать пакеты с определенным SNI.
Tcpdump
Команда:
tcpdump -i eth1 -s 1500 -X '(tcp[((tcp[12:1] & 0xf0) >> 2)+5:1] = 0x01) and (tcp[((tcp[12:1] & 0xf0) >> 2):1] = 0x16)'
Пример:
[root@blackpc ~]# tcpdump -i eth1 -s 1500 -X '(tcp[((tcp[12:1] & 0xf0) >> 2)+5:1] = 0x01)' and
'(tcp[((tcp[12:1] & 0xf0) >> 2):1] = 0x16)' and host 178.248.232.27
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 1500 bytes
14:44:29.950497 IP x.x.x.x.60044 > 178.248.232.27.https: Flags [P.], seq 2690445558:2690446075, ack 2960121525, win 115, options [nop,nop,TS val 100379054 ecr 1195184343], length 517
0x0000: 4500 0239 5960 4000 4006 769e c0a8 0d04 E..9Y`@.@.v.....
0x0010: b2f8 e81b ea8c 01bb a05c f0f6 b06f deb5 .........\...o..
0x0020: 8018 0073 6aec 0000 0101 080a 05fb a9ae ...sj...........
0x0030: 473d 10d7 1603 0102 0001 0001 fc03 0347 G=.............G
0x0040: edab 33fe a68e 1625 904e 404c d99c dc12 ..3....%.N@L....
0x0050: 645e de6e f35f d2a3 5fe4 920a 51a6 8820 d^.n._.._...Q...
0x0060: cf3b 1e81 07e6 a15c 5343 fb04 3e7e a684 .;.....\SC..>~..
0x0070: ba9e 5fd3 5ad5 fcf6 5969 21a2 0035 bdbe .._.Z...Yi!..5..
0x0080: 0024 c02b c02f 009e c00a c009 c013 c014 .$.+./..........
0x0090: c007 c011 0033 0032 0039 009c 002f 0035 .....3.2.9.../.5
0x00a0: 000a 0005 0004 0100 018f 0000 000d 000b ................
0x00b0: 0000 0878 616b 6570 2e72 75ff 0100 0100 ...xakep.ru.....
0x00c0: 000a 0008 0006 0017 0018 0019 000b 0002 ................
0x00d0: 0100 0023 00b0 8aec 9689 2d9d 7387 24ef ...#......-.s.$.
0x00e0: 1c8d e0b6 08ce 283b c5a7 174b 09cd 43db ......(;...K..C.
0x00f0: 87e3 3d9d f4ff 6cc8 c327 a9d3 9537 8e29 ..=...l..'...7.)
0x0100: 637f 7f7d e146 401c 84c5 b62d 38f6 284c c..}.F@....-8.(L
0x0110: 656a d3ab c460 77c2 d024 2b09 cf7c 94ca ej...`w..$+..|..
0x0120: a603 e410 38c9 4154 8ed5 4e67 b871 60ee ....8.AT..Ng.q`.
0x0130: 7ad0 e003 ccf4 dd49 67cf 32e8 881d 740d z......Ig.2...t.
0x0140: 5ebc 99f3 d08a cf2c f24a 0a28 b5ea 3157 ^......,.J.(..1W
0x0150: 78fb c9f0 f2ef 87aa bdb2 822c 1c61 d47c x..........,.a.|
0x0160: 68b7 b55c 0440 bf26 47f5 d5df acbf 6b3e h..\.@.&G.....k>
0x0170: d45d 7dc1 dd72 0abb abb2 183d 88a1 9237 .]}..r.....=...7
0x0180: 4cc4 9bfa 70ed 3374 0000 0010 001a 0018 L...p.3t........
0x0190: 0873 7064 792f 332e 3105 6832 2d31 3408 .spdy/3.1.h2-14.
0x01a0: 6874 7470 2f31 2e31 0005 0005 0100 0000 http/1.1........
0x01b0: 0000 1200 0000 0d00 1200 1004 0105 0102 ................
0x01c0: 0104 0305 0302 0304 0202 0200 1500 6a00 ..............j.
0x01d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x01e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x01f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0200: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0210: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0220: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0230: 0000 0000 0000 0000 00 .........
20150718
Перенос MediaWiki на новый сервер.
Создаем на новом сервер mysql базу и пользователя.
root@newserver# mysql -u root -p
mysql> create database wiki_db;
mysql> grant all privileges on wiki_db.* to wiki_user@localhost identified by 'pass';
mysql> flush privileges;
Копируем файлы mediawiki на новый сервер.
root@oldserver# cd /var/www/html
root@oldserver# tar zcvf /root/bup/mediawiki-$(date '+%Y%m%d').tgz mediawiki
root@oldserver# scp /root/bup/mediawiki-xxx.tgz root@newserver:/root/wiki-bup
root@newserver's password:
mediawiki-xxx.tgz 100% 23MB 11.8MB/s 00:02
Создаем дамп базы на старом сервере и копируем на новый.
root@oldserver# mysqldump --add-locks --complete-insert -u wiki_user -p wiki_db \
> /root/bup/wiki_db-$(date '+%Y%m%d').sql
root@oldserver# scp /root/bup/wiki_db-xxx.sql root@newserver:/root/wiki-bup
root@newserver's password:
wiki_db-xxx.sql 100% 4757KB 4.7MB/s 00:00
На новом сервере заливаем базу из дампа.
root@newserver# mysql -u wiki_user -p wiki_db < /root/wiki-bup/wiki_db-xxx.sql
Распаковываем файлы mediawiki новом сервере.
root@newserver: tar xvf /root/wiki-bup/mediawiki-xxx.tgz -C /var/www/
На новом сервере правим httpd.
vi /etc/httpd/conf.d/vhosts.conf
...
<VirtualHost *:80>
ServerAdmin a@b.c
DocumentRoot /var/www/mediawiki
ServerName wiki.b.c
ErrorLog logs/mediawiki_err_log
CustomLog logs/mediawiki_acc_log common
</VirtualHost>
vi /etc/httpd/conf.d/mediawiki.conf
...
Alias /mediawiki /var/www/html/mediawiki
Alias /view /var/www/html/mediawiki/index.php
...
Если новый сервер совсем свежий, на него только поставили минимальный LAMP, то надо доставить php-xml.
root@newserver# yum install php-xml
root@newserver# mysql -u root -p
mysql> create database wiki_db;
mysql> grant all privileges on wiki_db.* to wiki_user@localhost identified by 'pass';
mysql> flush privileges;
Копируем файлы mediawiki на новый сервер.
root@oldserver# cd /var/www/html
root@oldserver# tar zcvf /root/bup/mediawiki-$(date '+%Y%m%d').tgz mediawiki
root@oldserver# scp /root/bup/mediawiki-xxx.tgz root@newserver:/root/wiki-bup
root@newserver's password:
mediawiki-xxx.tgz 100% 23MB 11.8MB/s 00:02
Создаем дамп базы на старом сервере и копируем на новый.
root@oldserver# mysqldump --add-locks --complete-insert -u wiki_user -p wiki_db \
> /root/bup/wiki_db-$(date '+%Y%m%d').sql
root@oldserver# scp /root/bup/wiki_db-xxx.sql root@newserver:/root/wiki-bup
root@newserver's password:
wiki_db-xxx.sql 100% 4757KB 4.7MB/s 00:00
На новом сервере заливаем базу из дампа.
root@newserver# mysql -u wiki_user -p wiki_db < /root/wiki-bup/wiki_db-xxx.sql
Распаковываем файлы mediawiki новом сервере.
root@newserver: tar xvf /root/wiki-bup/mediawiki-xxx.tgz -C /var/www/
На новом сервере правим httpd.
vi /etc/httpd/conf.d/vhosts.conf
...
<VirtualHost *:80>
ServerAdmin a@b.c
DocumentRoot /var/www/mediawiki
ServerName wiki.b.c
ErrorLog logs/mediawiki_err_log
CustomLog logs/mediawiki_acc_log common
</VirtualHost>
...
vi /etc/httpd/conf.d/mediawiki.conf
...
Alias /mediawiki /var/www/html/mediawiki
Alias /view /var/www/html/mediawiki/index.php
...
Если новый сервер совсем свежий, на него только поставили минимальный LAMP, то надо доставить php-xml.
root@newserver# yum install php-xml
LAMP на Centos6
LAMP
L - Linux
A - Apache
M - MySQL
P- PHP
Ставим.
# yum install httpd mysql-server php php-mysql
Запускаем apache.
# /etc/init.d/httpd start
Starting httpd: [ OK ]
Запускаем mysql.
# /etc/init.d/mysqld start
Initializing MySQL database: Installing MySQL system tables...
OK
Filling help tables...
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h bender.ermoshin.pro password 'new-password'
Alternatively you can run:
/usr/bin/mysql_secure_installation
which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.
See the manual for more instructions.
You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cd /usr/mysql-test ; perl mysql-test-run.pl
Please report any problems with the /usr/bin/mysqlbug script!
[ OK ]
Starting mysqld: [ OK ]
Делаем первичную настройку mysql.
# /usr/bin/mysql_secure_installation
Задаем пароль для root и везде отвечаем "y".
Set root password? [Y/n] y
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
Проверяем php.
# vi /var/www/html/info.php
Пишем.
<?php
phpinfo();
?>
L - Linux
A - Apache
M - MySQL
P- PHP
Ставим.
# yum install httpd mysql-server php php-mysql
Запускаем apache.
# /etc/init.d/httpd start
Starting httpd: [ OK ]
Запускаем mysql.
# /etc/init.d/mysqld start
Initializing MySQL database: Installing MySQL system tables...
OK
Filling help tables...
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h bender.ermoshin.pro password 'new-password'
Alternatively you can run:
/usr/bin/mysql_secure_installation
which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.
See the manual for more instructions.
You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cd /usr/mysql-test ; perl mysql-test-run.pl
Please report any problems with the /usr/bin/mysqlbug script!
[ OK ]
Starting mysqld: [ OK ]
Делаем первичную настройку mysql.
# /usr/bin/mysql_secure_installation
Задаем пароль для root и везде отвечаем "y".
Set root password? [Y/n] y
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
Проверяем php.
# vi /var/www/html/info.php
Пишем.
<?php
phpinfo();
?>
Перзапускаем httpd и по http://server_ip/info.php должна появиться инфрмация о текущей версии php.
Включаем автозагрузку.
# chkconfig --level 2345 httpd on
# chkconfig --level 2345 mysqld on
Быстрые заметки по vi
9. Работа с несколькими файлами.
В командном режиме.
Ctrl-w n - открыть новое окно
:new /path/to/file открыть файл в новом окне (горизонтальное разделение)
:vnew /path/to/file открыть файл в новом окне (вертикальное разделение)
:n /path/to/file открыть файл в текущем окне
Ctrl-w w - последовательно переключаться между окнами
Ctrl-w "стрелки" - переключиться на окно в определенном направлении
Ctrl-w "hjkl" - то же самое, h - влево, j - вниз, k-вверх, l-вправо
Ctrl-w "HJKL" - Перенести текущее окно в определенном направлении
:q - закрыть текущее окно
:qall - закрыть все окна разом
:wqall - записать изменения и закрыть все окна разом
8. Скопировать выделенный текст.
В командном режиме.
y - поместить выделенный текст в буфер
p - скопировать выделенный текст (ниже курсора)
7. Выделить текст.
В командном режиме.
v+"стрелки" - выделить область
Shift-v - выделять целыми строчками
Ctrl-v - выделять блоком
6. Замена.
В командном режиме.
:s/что меняем/чем заменяем/ - найти и заменить первое совпадение в текущей строке.
:s/что меняем/чем заменяем/с - найти первое совпадение в текущей строке и спросить о замене.
:s/что меняем/чем заменяем/g - найти и заменить все совпадение в текущей строке.
:%s/что меняем/чем заменяем/g - найти и заменить все совпадение во всем файле.
5. Отмена отмены действия.
В командном режиме.
Ctrl-r или :red или :redo
4. Отмена действия. Отмена отмены действия.
В командном режиме.
u или :undo или :u
3. Удалить или вырезать строчку
В командном режиме.
dd
2. Скопировать строчку.
В командном режиме.
yy - поместить строчку в буфер
p - скопировать строчку (ниже курсора)
1. Два режима:
* Командный - удаление строк, копирование, поиск по тексту, запись, выход и пр.
* Редактирования - сообствено само редактирование текста.
Переход между режимами:
* из командного в режим редактирования - нажать "a" (add, текст после курсора) или "i" (insert, текст перед курсором), внизу появится "-- INSERT --".
* из режима редактирования в командный в режим редактирования - нажать Esc.
В командном режиме.
Ctrl-w n - открыть новое окно
:new /path/to/file открыть файл в новом окне (горизонтальное разделение)
:vnew /path/to/file открыть файл в новом окне (вертикальное разделение)
:n /path/to/file открыть файл в текущем окне
Ctrl-w w - последовательно переключаться между окнами
Ctrl-w "стрелки" - переключиться на окно в определенном направлении
Ctrl-w "hjkl" - то же самое, h - влево, j - вниз, k-вверх, l-вправо
Ctrl-w "HJKL" - Перенести текущее окно в определенном направлении
:q - закрыть текущее окно
:qall - закрыть все окна разом
:wqall - записать изменения и закрыть все окна разом
8. Скопировать выделенный текст.
В командном режиме.
y - поместить выделенный текст в буфер
p - скопировать выделенный текст (ниже курсора)
7. Выделить текст.
В командном режиме.
v+"стрелки" - выделить область
Shift-v - выделять целыми строчками
Ctrl-v - выделять блоком
6. Замена.
В командном режиме.
:s/что меняем/чем заменяем/ - найти и заменить первое совпадение в текущей строке.
:s/что меняем/чем заменяем/с - найти первое совпадение в текущей строке и спросить о замене.
:s/что меняем/чем заменяем/g - найти и заменить все совпадение в текущей строке.
:%s/что меняем/чем заменяем/g - найти и заменить все совпадение во всем файле.
5. Отмена отмены действия.
В командном режиме.
Ctrl-r или :red или :redo
4. Отмена действия. Отмена отмены действия.
В командном режиме.
u или :undo или :u
3. Удалить или вырезать строчку
В командном режиме.
dd
2. Скопировать строчку.
В командном режиме.
yy - поместить строчку в буфер
p - скопировать строчку (ниже курсора)
1. Два режима:
* Командный - удаление строк, копирование, поиск по тексту, запись, выход и пр.
* Редактирования - сообствено само редактирование текста.
Переход между режимами:
* из командного в режим редактирования - нажать "a" (add, текст после курсора) или "i" (insert, текст перед курсором), внизу появится "-- INSERT --".
* из режима редактирования в командный в режим редактирования - нажать Esc.
20150713
20150206
Установка и настройка связки Rancid+ViewVC
Статья переехала -> https://mykb.ru/doku.php?id=topic:rancid
Rancid
-- Доставляем необходимые пакеты
# yum install cvs expect gcc MySQL-python telnet
-- Скачиваем и распаковываем свежую версию Rancid.
# wget ftp://ftp.shrubbery.net/pub/rancid/rancid-3.1.tar.gz
# tar -zxvf rancid-3.1.tar.gz
-- Добавляем группу netadm в которую впоследствии будет добавлен пользователь apache.
# groupadd netadm
-- Создаем пользователя rancid и задаем ему пароль.
# useradd -g netadm -d /home/rancid rancid
# passwd rancid
-- Компилируем и устанавлваем rancid.
# pwd
/root/src/rancid-3.1
# ./configure --prefix=/home/rancid
# make install
-- Копируем файл в котором будут содержаться пароли от сетевого оборудования и выставляем права.
# cp /root/src/rancid-3.1/cloginrc.sample /home/rancid/.cloginrc
# chmod 0640 /home/rancid/.cloginrc
# chown -R rancid:netadm /home/rancid/
# chmod 770 /home/rancid/
-- В файле rancid.conf определяем группы сетевого оборудование.
# su - rancid
$ cp ~/etc/rancid.conf ~/etc/rancid.conf.orig
$ joe ~/etc/rancid.conf
...
# list of rancid groups
#LIST_OF_GROUPS="sl joebobisp"
# more groups...
#LIST_OF_GROUPS="$LIST_OF_GROUPS noc billybobisp"
LIST_OF_GROUPS="cisco juniper"
#
-- Создаем CVS репозиторий для ранее определенных групп.
$ /home/rancid/bin/rancid-cvs
-- Прописываем оборудование с которых будем снимать конфигурацию.
$ joe ~/var/juniper/router.db
...
srx-test;juniper;up
...
## Обращаем внимание, что в версиях rancid после 3.x в качестве разделителя используется ";".
-- Задаем пользователя, пароль и ip адрес для захода на сетевое оборудование
$ joe ~/.cloginrc
...
add method srx-test ssh
add user srx-test srx-user
add password srx-test srx-passwd
...
# joe /etc/hosts
...
x.x.x.x srx-test
...
-- Вручную запускаем rancid (от пользователя rancid) и проверяем, что конфигурация снялась.
$ rancid-run -r srx-test
$ ll ~/var/juniper/configs/
total 484
drwxr-x---. 2 rancid netadm 4096 Feb 30 23:59 CVS
-rw-r----- 1 rancid netadm 488712 Feb 30 23:59 srx-test
-- Пишем правило cron для rancid.
$ crontab -e
...
# #############################################
# Crontab for rancid on myserver
# #############################################
# Hourly Check
1 * * * * /home/rancid/bin/rancid-run
# Daily Clean Up of Diff Files at 11 50 pm
50 23 * * * /usr/bin/find /home/rancid/var/logs -type f -mtime +2 -exec rm {} \;
# Daily Clean Up of .SITE.run.lock Files at 11 50 pm
50 23 * * * rm /tmp/.*.lock
...
###
### Написать про почту
###
-- Копируем файлы query.cgi и viewvc.cgi в рабочую папку веб-сервера.
# cp /usr/local/viewvc-1.1.23/bin/cgi/*.cgi /var/www/cgi-bin
# ll /var/www/cgi-bin
total 8
-rwxr-xr-x. 1 root root 1782 Feb 30 23:59 query.cgi
-rwxr-xr-x. 1 root root 1781 Feb 30 21:59 viewvc.cgi
-- Правим /etc/https/conf.d/vhosts.conf
# joe /etc/https/conf.d/vhosts.conf
###
###Написать про https и пароли
checking Socket.pm version... Socket version 2.006 required--this is only version 1.82 at -e line 1.
BEGIN failed--compilation aborted at -e line 1.
configure: error: Socket.pm is older than 2.006; upgrade from http://metacpan.org/pod/Socket
cpan App::cpanminus
cpanm Socket
###
При написании заметки использовались материалы:
Rancid
-- Доставляем необходимые пакеты
# yum install cvs expect gcc MySQL-python telnet
-- Скачиваем и распаковываем свежую версию Rancid.
# wget ftp://ftp.shrubbery.net/pub/rancid/rancid-3.1.tar.gz
# tar -zxvf rancid-3.1.tar.gz
-- Добавляем группу netadm в которую впоследствии будет добавлен пользователь apache.
# groupadd netadm
-- Создаем пользователя rancid и задаем ему пароль.
# useradd -g netadm -d /home/rancid rancid
# passwd rancid
-- Компилируем и устанавлваем rancid.
# pwd
/root/src/rancid-3.1
# ./configure --prefix=/home/rancid
# make install
-- Копируем файл в котором будут содержаться пароли от сетевого оборудования и выставляем права.
# cp /root/src/rancid-3.1/cloginrc.sample /home/rancid/.cloginrc
# chmod 0640 /home/rancid/.cloginrc
# chown -R rancid:netadm /home/rancid/
# chmod 770 /home/rancid/
-- В файле rancid.conf определяем группы сетевого оборудование.
# su - rancid
$ cp ~/etc/rancid.conf ~/etc/rancid.conf.orig
$ joe ~/etc/rancid.conf
...
# list of rancid groups
#LIST_OF_GROUPS="sl joebobisp"
# more groups...
#LIST_OF_GROUPS="$LIST_OF_GROUPS noc billybobisp"
LIST_OF_GROUPS="cisco juniper"
#
...
-- Создаем CVS репозиторий для ранее определенных групп.
$ /home/rancid/bin/rancid-cvs
-- Прописываем оборудование с которых будем снимать конфигурацию.
$ joe ~/var/juniper/router.db
...
srx-test;juniper;up
...
## Обращаем внимание, что в версиях rancid после 3.x в качестве разделителя используется ";".
-- Задаем пользователя, пароль и ip адрес для захода на сетевое оборудование
$ joe ~/.cloginrc
...
add method srx-test ssh
add user srx-test srx-user
add password srx-test srx-passwd
...
# joe /etc/hosts
...
x.x.x.x srx-test
...
-- Вручную запускаем rancid (от пользователя rancid) и проверяем, что конфигурация снялась.
$ rancid-run -r srx-test
$ ll ~/var/juniper/configs/
total 484
drwxr-x---. 2 rancid netadm 4096 Feb 30 23:59 CVS
-rw-r----- 1 rancid netadm 488712 Feb 30 23:59 srx-test
-- Пишем правило cron для rancid.
$ crontab -e
...
# #############################################
# Crontab for rancid on myserver
# #############################################
# Hourly Check
1 * * * * /home/rancid/bin/rancid-run
# Daily Clean Up of Diff Files at 11 50 pm
50 23 * * * /usr/bin/find /home/rancid/var/logs -type f -mtime +2 -exec rm {} \;
# Daily Clean Up of .SITE.run.lock Files at 11 50 pm
50 23 * * * rm /tmp/.*.lock
...
###
### Написать про почту
###
ViewVC
-- Скачиваем и распаковываем свежую версию ViewVC.
# wget http://viewvc.tigris.org/files/documents/3330/49392/viewvc-1.1.23.tar.gz
# tar zxvf viewvc-1.1.23.tar.gz
-- Устанавливаем viewvc.
# cd viewvc-1.1.23
# ./viewvc-install
# cd viewvc-1.1.23
# ./viewvc-install
...
ViewVC file installation complete.
Consult the INSTALL document for detailed information on completing the
installation and configuration of ViewVC on your system. Here's a brief
overview of the remaining steps:
1) Edit the /usr/local/viewvc-1.1.23/viewvc.conf file.
2) Either configure an existing web server to run
/usr/local/viewvc-1.1.23/bin/cgi/viewvc.cgi.
Or, copy /usr/local/viewvc-1.1.23/bin/cgi/viewvc.cgi to an
already-configured cgi-bin directory.
Or, use the standalone server provided by this distribution at
/usr/local/viewvc-1.1.23/bin/standalone.py.
...
-- Настраиваем viewvc для работы с CVS репозиторием.
# cd /usr/local/viewvc-1.1.23/
# joe viewvc.conf
# cd /usr/local/viewvc-1.1.23/
# joe viewvc.conf
...
## Example:
## cvs_roots = cvsroot: /opt/cvs/repos1,
## anotherroot: /usr/local/cvs/repos2
##
#cvs_roots =
cvs_roots = cvsroot: /home/rancid/var/CVS
...
## Example:
## root_parents = /opt/svn: svn,
## /opt/cvs: cvs
##
#root_parents =
root_parents = /home/rancid/var/CVS : cvs
...
## Example:
## rcs_dir = /usr/bin/
##
#rcs_dir =
rcs_dir = /usr/local/bin
...
## use_rcsparse: Use the rcsparse Python module to retrieve CVS
## repository information instead of invoking rcs utilities [EXPERIMENTAL]
##
use_rcsparse = 1
...
# cp /usr/local/viewvc-1.1.23/bin/cgi/*.cgi /var/www/cgi-bin
# ll /var/www/cgi-bin
total 8
-rwxr-xr-x. 1 root root 1782 Feb 30 23:59 query.cgi
-rwxr-xr-x. 1 root root 1781 Feb 30 21:59 viewvc.cgi
-- Правим /etc/https/conf.d/vhosts.conf
# joe /etc/https/conf.d/vhosts.conf
...
# Custom Rancid Config
<VirtualHost *:80>
DocumentRoot /var/www
ScriptAlias /cgi-bin/ "/var/www/cgi-bin"
ScriptAlias /viewvc /var/www/cgi-bin/viewvc.cgi
ScriptAlias /query /var/www/cgi-bin/query.cgi
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
...
-- Добавляем пользователя apache в группу netadm.
# joe /etc/group
# joe /etc/group
...
netadm:x:5000:apache
...
-- Создаем mysql базу данных и пользователей.
# mysql -u root -p
# mysql -u root -p
mysql> create database viewvc_db;
mysql> create user 'viewvc_user'@'localhost' identified by 'pass1';
mysql> create user 'viewvc_user'@'localhost' identified by 'pass1';
mysql> grant all privileges on viewvc_db.* to 'viewvc_user'@'localhost' with grant option;
mysql> create user 'viewvc_rouser'@'localhost' identified by 'pass2';
mysql> grant all privileges on viewvc_db.* to 'viewvc_rouser'@'localhost' with grant option;
mysql> flush privileges;
-- Создаем структуру базы данных viewvc_db.
# cd /usr/local/viewvc-1.1.23/bin/
# cd /usr/local/viewvc-1.1.23/bin/
# ./make-database
./make-database:20: DeprecationWarning: The popen2 module is deprecated. Use the subprocess module.
import popen2
MySQL Hostname (leave blank for default):
MySQL Port (leave blank for default):
MySQL User: viewvc_user
MySQL Password: pass1
ViewVC Database Name [default: ViewVC]: viewvc_db
Database created successfully. Don't forget to configure the
[cvsdb] section of your viewvc.conf file.
-- Настраиваем viewvc для работы с mysql.
# joe /usr/local/viewvc-1.1.23/viewvc.conf
...
[cvsdb]
## enabled: Enable database integration feature.
##
enabled = 1
## host: Database hostname. Leave unset to use a local Unix socket
## connection.
##
host = localhost
## post: Database listening port.
##
port = 3306
## database_name: ViewVC database name.
##
database_name = viewvc_db
## user: Username of user with read/write privileges to the database
## specified by the 'database_name' configuration option.
##
user = viewvc_user
## passwd: Password of user with read/write privileges to the database
## specified by the 'database_name' configuration option.
##
passwd = pass1
## readonly_user: Username of user with read privileges to the database
## specified by the 'database_name' configuration option.
##
readonly_user = viewvc_rouser
## readonly_passwd: Password of user with read privileges to the database
## specified by the 'database_name' configuration option.
##
readonly_passwd = pass2
...
-- Заполняем базу данных.
# cd /usr/local/viewvc-1.1.23/bin/
# ./cvsdbadmin rebuild /home/rancid/var/CVS/CVSROOT/
Using repository root `/home/rancid/var/CVS'
Purging existing data for repository root `/home/rancid/var/CVS'
[CVSROOT/loginfo [0 commits]]
[CVSROOT/editinfo [0 commits]]
[CVSROOT/config [0 commits]]
[CVSROOT/notify [0 commits]]
[CVSROOT/verifymsg [0 commits]]
[CVSROOT/cvswrappers [0 commits]]
[CVSROOT/rcsinfo [0 commits]]
[CVSROOT/modules [0 commits]]
[CVSROOT/commitinfo [0 commits]]
[CVSROOT/checkoutlist [0 commits]]
[CVSROOT/taginfo [0 commits]]
-- Пробуем зайти на веб-интерфейс
http://x.x.x.x/viewvc
Все должно быть хорошо.
## Нормальной работе мне мешал selinux, в чем проблема не разбирался, просто отключил.
Все должно быть хорошо.
## Нормальной работе мне мешал selinux, в чем проблема не разбирался, просто отключил.
###
###Написать про https и пароли
checking Socket.pm version... Socket version 2.006 required--this is only version 1.82 at -e line 1.
BEGIN failed--compilation aborted at -e line 1.
configure: error: Socket.pm is older than 2.006; upgrade from http://metacpan.org/pod/Socket
cpan App::cpanminus
cpanm Socket
###
---
http://www.cj-gerow.com/ceg/?p=1900
http://ciscoskills.net/2015/01/03/install-rancid-and-viewvc-on-centos-7/
Установка и бэкап RackTables
1. Скачиваем свежий racktables.
# wget http://downloads.sourceforge.net/project/racktables/RackTables-0.20.10.tar.gz
2. Распаковываем архив.
# tar zxvf RackTables-0.20.10.tar.gz
3. Копируем файлы в директорию где будет работать racktables.
# cp -r RackTables-0.20.10/wwwroot/ /var/www/html/racktables/
4. Создаем базу racktables_db.
# mysql -u root -p
mysql> create database racktables_db;
mysql> grant all on racktables_db.* to racktables_user;
mysql> grant all on racktables_db.* to racktables_user@localhost;
mysql> set password for racktables_user@localhost=password('xxx');
5. Доставляем необходимые пакеты.
# yum install php-mbstring php-bcmath
6. Заходим браузером на http://x.x.x.x/racktables и следуем инструкциям.
Когда попросят создаем файл secret.php и задаем права.
# touch /var/www/html/racktables/inc/secret.php
# chmod 666 /var/www/html/racktables/inc/secret.php
Когда попросят меняем права и владельца для secret.php.
# chown apache:root /var/www/html/racktables/inc/secret.php
# chmod 400 /var/www/html/racktables/inc/secret.php
7. Правим /etc/httpd/conf.d/vhosts.conf
<VirtualHost *:80>
ServerAdmin i@xxx.org
DocumentRoot /var/www/html/racktables
ServerName racktables.xxx.org
ServerAlias www.racktables.xxx.org
ErrorLog logs/racktables_err_log
CustomLog logs/rackables_acc_log common
</VirtualHost>
8. Бэкап и восстановление.
# mysqldump -u racktables_user -p racktables_db > racktables_db.dump
# mysql -u racktables_user -p racktables_db < racktables_db.dump
# wget http://downloads.sourceforge.net/project/racktables/RackTables-0.20.10.tar.gz
2. Распаковываем архив.
# tar zxvf RackTables-0.20.10.tar.gz
3. Копируем файлы в директорию где будет работать racktables.
# cp -r RackTables-0.20.10/wwwroot/ /var/www/html/racktables/
4. Создаем базу racktables_db.
# mysql -u root -p
mysql> create database racktables_db;
mysql> grant all on racktables_db.* to racktables_user;
mysql> grant all on racktables_db.* to racktables_user@localhost;
mysql> set password for racktables_user@localhost=password('xxx');
5. Доставляем необходимые пакеты.
# yum install php-mbstring php-bcmath
6. Заходим браузером на http://x.x.x.x/racktables и следуем инструкциям.
Когда попросят создаем файл secret.php и задаем права.
# touch /var/www/html/racktables/inc/secret.php
# chmod 666 /var/www/html/racktables/inc/secret.php
Когда попросят меняем права и владельца для secret.php.
# chown apache:root /var/www/html/racktables/inc/secret.php
# chmod 400 /var/www/html/racktables/inc/secret.php
7. Правим /etc/httpd/conf.d/vhosts.conf
<VirtualHost *:80>
ServerAdmin i@xxx.org
DocumentRoot /var/www/html/racktables
ServerName racktables.xxx.org
ServerAlias www.racktables.xxx.org
ErrorLog logs/racktables_err_log
CustomLog logs/rackables_acc_log common
</VirtualHost>
8. Бэкап и восстановление.
# mysqldump -u racktables_user -p racktables_db > racktables_db.dump
# mysql -u racktables_user -p racktables_db < racktables_db.dump
---
При написании заметки использовались материалы:
http://www.binaryroyale.com/installing-racktables/
https://wiki.racktables.org/index.php/RackTablesInstallHowto
При написании заметки использовались материалы:
http://www.binaryroyale.com/installing-racktables/
https://wiki.racktables.org/index.php/RackTablesInstallHowto
20150129
Связка chroot и sftp
Связку chroot + sftp применяют когда необходимо запереть пользователя в определенной папке. Как правило такие задачи возникают на серверах с хостингом.
Задача - предоставить пользователям user1 и user2 доступ по sftp к каталогам в которых лежат их сайты и запереть их там. Пользователю user3 предоставить доступ к произвольному каталогу.
1. Определяем место где будут лежать сайты пользователей, создаем необходимые папки.
# mkdir -p /var/www/user1/mysite
# mkdir -p /var/www/user2/mysite
# mkdir -p /mnt/sdc1/project
user1 и user2 не должны подниматься выше /var/www/user1 и /var/www/user2 соответственно. user3 не должен подниматься выше /mnt/sdc1/project.
2. Создаем группу sftp_only (скорее всего она уже есть) для пользователей user1 и user2.
Создаем группу sftp_user3 для пользователя user3.
# groupadd sftp_only
# groupadd sftp_user3
3. Создаем пользователя, задаем ему домашнюю директорию, шелл и добавляем его в группу.
# useradd -d /var/www/user1/mysite -s /sbin/nologin -G sftp_only user1
# useradd -d /var/www/user2/mysite -s /sbin/nologin -G sftp_only user2
# useradd -d /mnt/sdc1/project -s /sbin/nologin -G sftp_user3 user3
Командой passwd задаем пользователям пароли.
В файлах /etc/group и /etc/passwd проверяем, что пользователи создались правильно.
4. Вносим изменения в конфигурацию sshd (файл /etc/ssh/sshd_config).
Коментируем строчку
#Subsystem sftp /usr/libexec/openssh/sftp-server
И под ней добавляем новую строчку
Subsystem sftp internal-sftp
Определяем пользователей и ip адреса с которых на сервер можно зайти по ssh.
AllowUsers root@1.1.1.1 user1@2.2.2.2,3.3.3.3 user2@4.4.4.*,4.4.5.0/24 user3
##AllowUsers root - очень и очень.. нет, просто супертурбо очень плохо=)
В конец файла добавляем для группы sftp_only
Match Group sftp_only
ChrootDirectory /var/www/%u
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
И для группы sftp_user3
Match Group sftp_only
ChrootDirectory /mnt/sdc1/project
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
Задача - предоставить пользователям user1 и user2 доступ по sftp к каталогам в которых лежат их сайты и запереть их там. Пользователю user3 предоставить доступ к произвольному каталогу.
1. Определяем место где будут лежать сайты пользователей, создаем необходимые папки.
# mkdir -p /var/www/user1/mysite
# mkdir -p /var/www/user2/mysite
# mkdir -p /mnt/sdc1/project
user1 и user2 не должны подниматься выше /var/www/user1 и /var/www/user2 соответственно. user3 не должен подниматься выше /mnt/sdc1/project.
2. Создаем группу sftp_only (скорее всего она уже есть) для пользователей user1 и user2.
Создаем группу sftp_user3 для пользователя user3.
# groupadd sftp_only
# groupadd sftp_user3
3. Создаем пользователя, задаем ему домашнюю директорию, шелл и добавляем его в группу.
# useradd -d /var/www/user1/mysite -s /sbin/nologin -G sftp_only user1
# useradd -d /var/www/user2/mysite -s /sbin/nologin -G sftp_only user2
# useradd -d /mnt/sdc1/project -s /sbin/nologin -G sftp_user3 user3
Командой passwd задаем пользователям пароли.
В файлах /etc/group и /etc/passwd проверяем, что пользователи создались правильно.
4. Вносим изменения в конфигурацию sshd (файл /etc/ssh/sshd_config).
Коментируем строчку
#Subsystem sftp /usr/libexec/openssh/sftp-server
И под ней добавляем новую строчку
Subsystem sftp internal-sftp
Определяем пользователей и ip адреса с которых на сервер можно зайти по ssh.
AllowUsers root@1.1.1.1 user1@2.2.2.2,3.3.3.3 user2@4.4.4.*,4.4.5.0/24 user3
##AllowUsers root - очень и очень.. нет, просто супертурбо очень плохо=)
В конец файла добавляем для группы sftp_only
Match Group sftp_only
ChrootDirectory /var/www/%u
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
И для группы sftp_user3
Match Group sftp_only
ChrootDirectory /mnt/sdc1/project
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
Сохраняем файл и перезапускаем sshd.
5. Выставляем права на папки.
5. Выставляем права на папки.
Папки /var/www/user1, /var/www/user2 и /var/www/user2 и /mnt/sdc1/project должны принадлежать пользователю и группе root.
Папка /var/www/user1/mysite должна принадлежать пользователю и группе user1, а /var/www/user2/mysite должна принадлежать user2.
После этого все должно работать.
---
---
При написании заметки использовались материалы:
http://kb.skullboxx.net//?q=node/546
Ошибка Mysql - ERROR 1146 (42S02): Table 'mysql.servers' doesn't exist
На Cenos 5 работает mysql-5.1.58. При попытке дать команду "flush privileges" вылезала следующая ошибка:
mysql> flush privileges;
ERROR 1146 (42S02): Table 'mysql.servers' doesn't exist
В базе "mysql" не было таблицы "servers".
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| func |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| host |
| proc |
| procs_priv |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
17 rows in set (0.01 sec)
mysql> flush privileges;
ERROR 1146 (42S02): Table 'mysql.servers' doesn't exist
В базе "mysql" не было таблицы "servers".
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| func |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| host |
| proc |
| procs_priv |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
17 rows in set (0.01 sec)
На других серверах с более поздней версией таблица "servers" была.
Для решения проблемы надо создать требуемую таблицу.
mysql> CREATE TABLE `servers` ( `Server_name` char(64) NOT NULL,
`Host` char(64) NOT NULL,
`Db` char(64) NOT NULL,
`Username` char(64) NOT NULL,
`Password` char(64) NOT NULL,
`Port` int(4) DEFAULT NULL,
`Socket` char(64) DEFAULT NULL,
`Wrapper` char(64) NOT NULL,
`Owner` char(64) NOT NULL,
PRIMARY KEY (`Server_name`) )
ENGINE=MyISAM
DEFAULT CHARSET=utf8
COMMENT='MySQL Foreign Servers table';
Query OK, 0 rows affected (0.02 sec)
##В последней строчке должны стоять одинарные кавычки, а не апостроф как выше.
После добавления таблицы все стало хорошо.
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
---
При написании заметки использовались материалы:
http://linux-lab.ru/oshibka-error-1146-42s02-table-mysql-servers-doesnt-exist/
https://rajesh9333.wordpress.com/2012/08/25/flush-privileges-error-in-mysql/
20140220
Быстрые заметки по linux
31. Сделать загрузочную usb из iso образа.
[root@blackpc Downloads]# dd if=ubuntu-16.04.1-desktop-amd64.iso of=/dev/sdX
2955680+0 records in
2955680+0 records out
1513308160 bytes (1.5 GB) copied, 315.148 s, 4.8 MB/s
30. Показать конфиг без коментариев.
grep -v -E "#|^$" main.conf - убрать строку содержащую "#"
grep -v -E "^#|^$" main.conf - убрать строку начинающуюся с "#"
29. Обнуление счетчика icmp пакетов у команды ping.
64 bytes from 176.114.202.2: icmp_seq=65533 ttl=55 time=5.32 ms
64 bytes from 176.114.202.2: icmp_seq=65534 ttl=55 time=5.32 ms
64 bytes from 176.114.202.2: icmp_seq=65535 ttl=55 time=5.32 ms
64 bytes from 176.114.202.2: icmp_seq=0 ttl=55 time=5.32 ms
64 bytes from 176.114.202.2: icmp_seq=1 ttl=55 time=5.32 ms
64 bytes from 176.114.202.2: icmp_seq=2 ttl=55 time=5.32 ms
28. Подключиться по RDP к Windows и примонтировать /home как диск.
rdesktop -u user -r disk:home=/home/user -g 90% -k en-us -d domain 192.168.0.1[root@blackpc Downloads]# dd if=ubuntu-16.04.1-desktop-amd64.iso of=/dev/sdX
2955680+0 records in
2955680+0 records out
1513308160 bytes (1.5 GB) copied, 315.148 s, 4.8 MB/s
30. Показать конфиг без коментариев.
grep -v -E "#|^$" main.conf - убрать строку содержащую "#"
grep -v -E "^#|^$" main.conf - убрать строку начинающуюся с "#"
29. Обнуление счетчика icmp пакетов у команды ping.
64 bytes from 176.114.202.2: icmp_seq=65533 ttl=55 time=5.32 ms
64 bytes from 176.114.202.2: icmp_seq=65534 ttl=55 time=5.32 ms
64 bytes from 176.114.202.2: icmp_seq=65535 ttl=55 time=5.32 ms
64 bytes from 176.114.202.2: icmp_seq=0 ttl=55 time=5.32 ms
64 bytes from 176.114.202.2: icmp_seq=1 ttl=55 time=5.32 ms
64 bytes from 176.114.202.2: icmp_seq=2 ttl=55 time=5.32 ms
28. Подключиться по RDP к Windows и примонтировать /home как диск.
27. Показать время в unix time
# date
Sat Feb 6 23:50:54 MSK 2016
# date +%s
1454791857
26. TimeTicks
# snmpwalk -c what -v 1 localhost HOST-RESOURCES-MIB::hrSystemUptime.0
HOST-RESOURCES-MIB::hrSystemUptime.0 = Timeticks: (924428) 2:34:04.28
# snmpwalk -c what -v 1 -Otv localhost HOST-RESOURCES-MIB::hrSystemUptime.0
927919
TimeTicks/100 = секунды
TimeTicks/6000 = минуты
TimeTicks/360000 = часы
TimeTicks/8640000 = дни
25. Пример файла ifcfg-eth0
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:25:11:7A:AB:AA
TYPE=Ethernet
UUID=e619a645-c894-475d-88df-4d7a7deee559
ONBOOT=yes
NM_CONTROLLED=no
IPV6INIT=no
BOOTPROTO=none
IPADDR=10.254.1.7
PREFIX=24
GATEWAY=10.254.1.240
DNS1=172.16.0.11
DEFROUTE=yes
24. Посмотреть сетевые карты.
# yum install pciutils
# lspci | grep Eth
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Ethernet controller (rev 02)
02:01.0 Ethernet controller: VIA Technologies, Inc. VT6105/VT6106S [Rhine-III] (rev 86)
02:02.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 64)
23. Thunderbird - человеческий формат даты и времени. Решение честно списано - http://blog.amet13.name/2015/07/thunderbird-24.html
# joe /usr/bin/thunderbird
В начало файла пишем:
...
LC_TIME="ru_RU.UTF-8"
export LC_TIME
...
После обновления thunderbird операцию повторить.
22. Cacti, длина поля data queries
По умолчанию длина стоит 15 символов.
Запрос "|host_description| - Traffic - port |query_ifDescr| (|query_ifAlias|)"
выдаст результат "test-sw1 - Traffic - port GigabitEthernet (to_test-sw2/p1)", т.е. не булет видно полностью название филического интерфейса коммутатора.
Увеличить значение можно в поле:
Configuration -> Settings -> Visual-> Maximum Field Length
Там же есть Maximum Title Length, длина подписи к графикам.
21. !H
1 192.168.0.91 (192.168.0.91) 3000.135 ms !H 3000.131 ms !H 3000.128 ms !H
[root@xxx ~]# ping 192.168.0.40
PING 192.168.0.40 (192.168.0.40) 56(84) bytes of data.
From 192.168.0.91 icmp_seq=1 Destination Host Unreachable
Посмотри arp.
20. Скопировать папки на одном компе c помощью rsyncrsync -vaW --progress /media/c117/ /media/mm/
19. UFW
/etc/ufw - конфиги файрволла
# ufw enable - запустить ufw и сказать, что ufw будет запускаться при старте
# ufw reset - сбросить правила до дефолтных
# ufw allow 22/tcp - разрешить ssh c any на any
# ufw allow 100:102/udp - разрешить диапазон udp портов c any на any
# ufw allow from 1.1.1.1 to any port 80 proto tcp - разрешить http с 1.1.1.1
# ufw status numbered - посмотреть пронумерованный список правил
# ufw delete 2 - удалить правило номер два, после удаления правила перенумеруются.
18. Запустить на удаленной машине rtorrent
ssh y@x.x.x.x 'screen -fa -d -m rtorrent'
17. Послать UDP-пакет.
# hping -c 10 --udp -s 53 --keep -p 13546 1.1.1.1
16. Распаковать .gz
15. MOTH
Message of the day.
Просто надо попрвить /etc/motd и при логине по ssh сообщение появится после последнего времени захода.
14. Комбо.
# ifdown eth1 && ifup eth1
13. Cron.
Формат.
0 1 * * * /path/to/script
минуты часы число месяц день_недели команда
Примеры:
17 13 * * * /path/to/script - каждый день в 13:17
17 13 * * 2,4,6 /path/to/script - каждый вторник, четверг и субботу в 13:17 (дни считаются от 0 до 6, 0 это воскресенье)
17 13 * * 1-5 /path/to/script - каждый день с понедельника по пятницу в 13:17
12. Удалить ssh ключ из know_hosts.
или
$ ssh-keygen -f .ssh/known_hosts -R 1.1.1.1
11. Вывести список файлов в которых нашлось совпадение (ключ -l).
10. Показать дату на один день меньше, задать свой формат даты.
13.07.2015
9. exaile на centos6
-- Подключаем репозиторий nux-dextop.
http://li.nux.ro/repos.html
-- Ставим exaile и gstreamer неоходимы для работы с mp3.
# yum install exaile gstreamer-plugins-ugly
8. Посмотреть статус физического интерфейса в linux.
[root@blackpc ~]# ethtool eth1
Settings for eth1:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Link partner advertised pause frame use: Symmetric
Link partner advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
MDI-X: off
Supports Wake-on: g
Wake-on: d
Current message level: 0x000000ff (255)
drv probe link timer ifdown ifup rx_err tx_err
Link detected: yes
Settings for eth1:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Link partner advertised pause frame use: Symmetric
Link partner advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
MDI-X: off
Supports Wake-on: g
Wake-on: d
Current message level: 0x000000ff (255)
drv probe link timer ifdown ifup rx_err tx_err
Link detected: yes
7. Размер папки.
-- Посмотреть размер текущей папки.
root@% pwd
/cf
root@% du -sh
688M
-- Посмотеть размер всех директорий и файлов в текущей папке.
root@% du -sh *
3.0M boot
2.0K dev
592K etc
0B kernel
0B kernel.old
16K opt
175M packages
10K root
166K sbin
14K usr
509M var
6. tar
-- Создать архив .tgz из файлов в текущей папке.
tar -czvf name.tgz *
-- Разархивировать .tgz в текущую папку.
tar -zxvf name.tgz
5. Показать каталог в виде дерева.
# tree -puga test
# tree -puga test
# tree -pugad -L 2 test
4. Создать пользователя без домашней директории, задать шелл и группу.
# useradd -M -s /bin/false -G nfs
3. NFS
NFS-сервер.
# joe /etc/exports
/mnt/mm x.x.x.y(rw,sync,no_subtree_check,all_squash,anonuid=1000,anongid=1000)
rw - разрешаем чтение и запись.
sync - режим работы при котором сервер ждет когда клиент запишет файл и только после этого подтверждает успешность записи.
no_subtree_check -
all_squash - разрешаем подключение от анонимного пользователя.
anonuid, anongid - при анонимной записи файла на сервер в качестве владельцев подставляем локальных пользователя и группу.
Применение изменений в файле /etc/exports
# exportfs -a
NFS-клиент.
# mount -t nfs x.x.x.y:/mnt/mm /mnt/nfs-server
# umount /mnt/nfs-server
2. Символическая ссылка.
ls -s /path/to/file_or_folder symlink_name
diff file1 file2 - отчет о различиях, читать не удобно.
sdiff file1 file2 - читаемо, выводит сравниваемый текст в две колонки.
Подписаться на:
Сообщения (Atom)