Архив автора: shilovk

swap

 

mkswap - системная утилита UNIX-подобных операционных систем предназначенная для создания раздела или файла подкачки (свопинга).

1)  Для начала необходимо создать сам файл подкачки (/swap) необходимого объема (1GB) с помощью dd.

bash:

  1. dd if=/dev/zero of=/swap bs=1024 count=1024K

2) С помощью утилиты mkswap записываем в файл /swap системную информацию, которую операционная система будет использовать при работе.

bash:

  1. mkswap /swap

3)  Если Вы будете активировать SWAP вручную, т.е. каждый раз после загрузки операционной системы, то можно воспользоватся командой swapon

bash:

  1. swapon /swap

4)  Для того, чтоб SWAP автоматически активировался при загрузке операционной системы, необходимо указать его в автоматическую загрузку через /etc/fstab

bash:

  1. echo «/swap swap swap defaults 0 0″ | sudo tee -a /etc/fstab

link


Для проверки состояния SWAP:

bash:

  1. cat /proc/swaps

Для удаления SWAP файла необходимо деактивировать SWAP файл подкачки, затем удалить сам SWAP файл подкачки, а так же не забыть удалить запись из /etc/fstab

bash:

  1. swapoff /swap
  2. rm /swap

Внимание! Для создания или удаления SWAP файла подкачки необходимо иметь права суперпользователя или выполнять команды с помощью sudo 

yandex maps

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <title>Быстрый старт. Размещение интерактивной карты на странице</title>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>
 <script src="http://maps.googleapis.com/maps/api/js?v=3" type="text/javascript"></script>
 <script type="text/javascript">
 // var map = new google.maps.Map(document.getElementById('map'), {
 // zoom: 12,
 // center: new google.maps.LatLng(0, 0)
 // });
 ymaps.ready(function () {
 ymaps.geolocation.get({
 provider: 'yandex'
 }).then(function (result) {
 var find_result = result.geoObjects.get(0)
 var coords = find_result.geometry.getCoordinates();
 // map.setCenter(new google.maps.LatLng(coords[0], coords[1]));
 ya_map = new ymaps.Map ("ya_map", {
 center: [coords[0], coords[1]],
 zoom: 12
 });
 console.log(coords);
 console.log(find_result.properties.get('metaDataProperty.GeocoderMetaData.AddressDetails.Country.CountryName'));
 console.log(find_result.properties.get('metaDataProperty.GeocoderMetaData.AddressDetails.Country.CountryNameCode'));
 console.log(find_result.properties.get('metaDataProperty.GeocoderMetaData.AddressDetails.Country.AddressLine'));
 console.log(find_result.properties.get('metaDataProperty.GeocoderMetaData.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName'));
 console.log(find_result.properties.get('metaDataProperty.GeocoderMetaData.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.SubAdministrativeAreaName'));
 console.log(find_result.properties.get('metaDataProperty.GeocoderMetaData.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName'));
 });
 });
 </script>
</head>
<body>
 <!-- <div id="map" style="width: 600px; height: 400px"></div> -->
 <div id="ya_map" style="width: 600px; height: 400px"></div>
</body>
</html>

flash for os

link

Как создать загрузочную флешку

Рассмотрим пять различных способов на примере пяти бесплатных программ для Windows.

ЛИБО ВРУЧНУЮ

Вводим команду diskpart и нажимаем Enter:

Vvodim-komandu-DiskPart

Теперь нужно вывести список запоминающих устройств, для этого вводим команду list disk и нажимаем Enter:

vvodim-komandu-list-disk

Диск 0 размером 232 Gбайт → это мой жесткий диск, он нам не нужен, а вотДиск 1 размером 29 Gбайт → это и есть моя флешка. Кстати, если ваша флешка 4 Gбайт или 8 Gбайт, то не ищите именно такой размер, как правило, система может показать 3822 Мбайт или 7640 Мбайт соответственно.

Будьте внимательны!! 1 → это мой номер диска. Если у вас флешка под номером 2 (соответственно, Диск 2), то вводим команду select disk 2. Это архиважно, иначе вы запросто можете стереть весь жесткий диск.

Поскольку флешка у меня это Диск 1 (напоминаю, у вас может быть другая цифра), то вводим команду select disk 1 и нажимаем Enter. Выбран Диск 1.

select-disk

Вводим команду clean, она очищает выбранный диск, и нажимаем Enter:

vvodim-komandu-clean

Следующая команда create partition primary и нажимаем Enter.

create-partition-primary

Указанный раздел успешно создан. Далее – команда select partition 1 и нажимаем Enter.

select-partition-1

Далее вводим команду active и нажимаем Enter.

vvodim-komandu-active

Нужно произвести форматирование флешки в формат NTFS. Приступим. Вводим команду format fs=NTFS и нажимаем Enter. Ждем, это займет некоторое время. Для нетерпеливых есть команда format fs=NTFS QUICK.

formatirkem-tom-v-nfts

Когда форматирование завершится, водим команду assign и флешке автоматически назначается буква, в моем случае ( J ).

naznachenie-imeni-diska

Осталось завершить работу. Вводим команду Exit и нажимаем Enter.

zaversheniye-raboty-diskpart

Самое интересное позади. Кстати, вот так теперь выглядит наша флешка в системе: Съемный Диск (J:).

novyy-syemnyy-disk

Теперь копируем все файлы с диска с дистрибутивом Windows на флешку. Если у вас ISO-образ с дистрибутивом, то рекомендую воспользоваться утилитой DAEMON Tools Lite.

Устанавливаем данную утилиту, выбираем iso образ с Windows и дважды щелкаем левой клавишей мыши, происходит монтирование образа, далее нужно открыть папку для просмотра файлов.

otkryt-obraz

Теперь все эти файлы просто копируем на ранее подготовленную флешку.

kopiruyem-fayly-diska-na-fleshku

Можно воспользоваться и утилитой 7-Zip. Запускаем утилиту и выбираем ISO-образ с Windows, нажимаем на кнопку «Извлечь» и указываем флешку.

izvlech-ISO-obraz

Вот и все. Наша загрузочная флешка с операционной системой Windows 7 готова к установке. Если вы все сделали правильно, то запустив файл setup, расположенный в директории флешки, откроется установщик Windows.

okno-ustanovki-Windows

Переходим к следующему этапу. Теперь нам нужно загрузить компьютер с флешки и запустить установку операционной системы Windows 7.

Как загрузить ноутбук с флешки?

Для того что бы мы могли загрузить ноутбук с флешки, диска или других носителей и были придуманы так называемые горячие клавиши, позволяющие попасть в загрузочное меню в обход настроек БИОС.

Приведу пример, как попасть в такое загрузочное меню на различных моделях ноутбуков. Перезагружаем ноутбук и в зависимости от вашей модели в момент начала загрузки жмем соответствующую горячую клавишу. В моем ноутбуке Asus это клавиша ESC.

goryachiye klavishi zagruzki noutbuka

Выглядеть это будет примерно так. Выбираем USB-флешку и запускаем установку. Если вам нужно создать загрузочную флешку Windows 10 с поддержкой UEFI, то читаем руководство по ссылке.

Please select boot device1

Кстати, рекомендую вам прочитать мою новую статью «Пять программ для создания загрузочной флешки», которую вы найдете здесь.

Как я уже сказал, сам процесс установки Windows с флешки идентичен установке Windows с диска. Как сделать загрузочную флешку с Windows 7 и Windows 8 или способ номер 2, читаем здесь. На этом все. Удачи и до встречи в новых статьях!

sublime many tricks

link

0) Установить SublimeText3
http://www.sublimetext.com/3

1) Установить Package Control
(сайт: https://sublime.wbond.net)
установка:
а) в SublimeText нажать ctrl+` (или View->Show console)
б) ввести и нажать enter:
import urllib.request,os; pf = ‘Package Control.sublime-package’; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); open(os.path.join(ipp, pf), ‘wb’).write(urllib.request.urlopen( ‘http://sublime.wbond.net/‘ + pf.replace(‘ ‘,’%20′)).read())
в) перезагрузить SublimeText на всякий случай

2) Установить Soda Theme
(сайт: https://github.com/buymeasoda/soda-theme/)
а) ctrl+shift+p -> install package
б) найти и установить Theme — Soda
в) если будут ошибки, тему можно скачать с сайта с помощью git, но обычно это не нужно

3) Установить цветовую схему Monokai Soda
а) Скачать файл http://buymeasoda.github.com/soda-theme/extras/colour-schemes.zip
б) Переложить в каталог с юзерскими пакетами
(на windows это: C:\Users\olegchir\AppData\Roaming\Sublime Text 3\Packages\User,
в Mac то же самое в /Library/Application Support)

3) Настроить шрифт
В MacOSX я использую шрифт Menlo.
Если ОС — Windows или Linux, установить какой-нибудь хороший шрифт.

Ближайшие аналоги:
1) Родитель всех этих шрифтов включая Menlo — Bitstream Vera (скачать с сайта Гнома)
2) DejaVu Sans Mono (сравнение с Menloскачать, в линуксе обычно есть сразу)
3) Meslo (скачать).
Там куча шрифтов, названия типа такого: MesloLGMDZ-Regular. M в названии — это межстрочное расстояние, S — small, M — medium, L — large. DZ — в цифре 0 вместо линии будет точка (а если убрать эти буквы, MesloLGM-Regular, то будет линия). Начертание — Regular/Italic/Bold.

4) Настроить тему
а) Выбрать Preferences -> Settings-User
б) Настроить конфиг.
На сайте Cola написано про настройки.
Можно использовать мой конфиг:
(не забыть поменять название шрифта в нем
- c Menlo на DjVuSansMono или MesloLGM-Regular
- в Windows шрифт Meslo в размере 18 выглядит коряво, надо стереть и поставить другое, н-р 12)

{
    "auto_complete_commit_on_tab": true,
    "bold_folder_labels": true,
    "color_scheme": "Packages/User/Monokai Soda.tmTheme",
    "default_extend_env":
    {
        "PATH": "{PATH}:/usr/bin/"
    },
    "ensure_newline_at_eof_on_save": true,
    "file_exclude_patterns":
    [
        ".DS_Store",
        ".tags*",
        "*.pyc",
        "*.pyo",
        "*.exe",
        "*.dll",
        "*.obj",
        "*.o",
        "*.a",
        "*.lib",
        "*.log",
        "*.so",
        "*.dylib",
        "*.ncb",
        "*.sdf",
        "*.suo",
        "*.pdb",
        "*.idb",
        "*.class",
        "*.psd",
        "*.db",
        "*.pdf"
    ],
    "folder_exclude_patterns":
    [
        "data",
        ".zeus.sock",
        ".git",
        ".svn",
        ".hg",
        "CVS",
        ".sass-cache",
        ".bundle",
        "bundle",
        ".rbx",
        "bin",
        "script",
        "tmp"
    ],
    "font_face": "Menlo",
    "font_size": 18,
    "highlight_line": true,
    "highlight_modified_tabs": true,
    "ignored_packages":
    [
        "Vintage"
    ],
    "line_padding_bottom": 0.5,
    "line_padding_top": 0.5,
    "new_window_settings":
    {
        "show_minimap": false
    },
    "rulers":
    [
        80
    ],
    "save_on_focus_lost": true,
    "tab_size": 4,
    "theme": "Soda Dark 3.sublime-theme",
    "translate_tabs_to_spaces": true,
    "trim_trailing_white_space_on_save": true
}

5) Перезагрузить SublimeText

List All Users In The System

link

/etc/passwd file contains one line for each user account, with seven fields delimited by colons. This is a text file. You can easily list users using the cat command as follows: $ cat /etc/passwd Sample outputs:

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
....
..
...

OR use pages as follows to view /etc/passwd file: $ more /etc/passwd $ less /etc/passwd Sample outputs:

Centos / RHEL /  Fedora / Debian / Ubuntu List Users Command
All fields are separated by a colon (:) symbol. Total seven fields exists. The first field is username. It is used when user logs in. It should be between 1 and 32 characters in length.

Task: Linux List Users Command

To list only usernames type the following awk command: $ awk -F':' '{ print $1}' /etc/passwd Sample outputs:

root
daemon
bin
sys
sync
games
man
lp
mail
news
....
..
..hplip
vivek
bind
haldaemon
sshd
mysql
radvd

A Note About System and General Users

Each user has numerical user ID called UID. It is defined in /etc/passwd file. The UID for each user is automatically selected using /etc/login.defs file when you use useradd command. To see current value, enter: $ grep "^UID_MIN" /etc/login.defs $ grep UID_MIN /etc/login.defs Sample outputs:

UID_MIN			 1000
#SYS_UID_MIN		  100

1000 is minimum values for automatic uid selection in useradd command. In other words all normal system users must have UID >= 1000 and only those users are allowed to login into system if shell is bash/csh/tcsh/ksh etc as defined /etc/shells file. Type the following command to list all login users:

 
## get UID limit ##
l=$(grep "^UID_MIN" /etc/login.defs)
## use awk to print if UID >= $UID_LIMIT ##
awk -F':' -v "limit=${l##UID_MIN}" '{ if ( $3 >= limit ) print $1}' /etc/passwd

To see maximum values for automatic uid selection in useradd command, enter: awk -F’:’ -v «min=${l##UID_MIN}» -v «max=${l1##UID_MAX}» ‘{ if ( $3 >= min && $3 <= max ) print $0}’ /etc/passwd$ grep "^UID_MAX" /etc/login.defs Sample outputs:

UID_MAX			60000

In other words all normal system users must have UID >= 1000 (MIN) and UID <= 60000 (MAX) and only those users are allowed to login into system if shell is bash/csh/tcsh/ksh etc as defined/etc/shells file. Here is an updated code:

 
## get mini UID limit ##
l=$(grep "^UID_MIN" /etc/login.defs)
 
## get max UID limit ##
l1=$(grep "^UID_MAX" /etc/login.defs)
 
## use awk to print if UID >= $MIN and UID <= $MAX   ##
awk -F':' -v "min=${l##UID_MIN}" -v "max=${l1##UID_MAX}" '{ if ( $3 >= min && $3 <= max ) print $0}' /etc/passwd

Sample outputs:

vivek:x:500:500::/home/vivek:/bin/bash
raj:x:501:501::/home/raj:/bin/ksh
ash:x:502:502::/home/ash:/bin/zsh
jadmin:x:503:503::/home/jadmin:/bin/sh
jwww:x:504:504::/htdocs/html:/sbin/nologin
wwwcorp:x:505:505::/htdocs/corp:/sbin/nologin
wwwint:x:506:506::/htdocs/intranet:/bin/bash
scpftp:x:507:507::/htdocs/ftpjail:/bin/bash
rsynftp:x:508:508::/htdocs/projets:/bin/bash
mirror:x:509:509::/htdocs:/bin/bash
jony:x:510:510::/home/jony:/bin/ksh
amyk:x:511:511::/home/amyk:/bin/ksh

/sbin/nologin is used to politely refuse a login i.e. /sbin/nologin displays a message that an account is not available and exits non-zero. It is intended as a replacement shell field for accounts that have been disabled or you do not want user to login into system using ssh. To filter /sbin/nologin, enter:

#!/bin/bash
# Name: listusers.bash
# Purpose: List all normal user accounts in the system. Tested on RHEL / Debian Linux
# Author: Vivek Gite <www.cyberciti.biz>, under GPL v2.0+
# -----------------------------------------------------------------------------------
_l="/etc/login.defs"
_p="/etc/passwd"
 
## get mini UID limit ##
l=$(grep "^UID_MIN" $_l)
 
## get max UID limit ##
l1=$(grep "^UID_MAX" $_l)
 
## use awk to print if UID >= $MIN and UID <= $MAX and shell is not /sbin/nologin   ##
awk -F':' -v "min=${l##UID_MIN}" -v "max=${l1##UID_MAX}" '{ if ( $3 >= min && $3 <= max  && $7 != "/sbin/nologin" ) "$_p"

Sample outputs:

vivek:x:500:500::/home/vivek:/bin/bash
raj:x:501:501::/home/raj:/bin/ksh
ash:x:502:502::/home/ash:/bin/zsh
jadmin:x:503:503::/home/jadmin:/bin/sh
wwwint:x:506:506::/htdocs/intranet:/bin/bash
scpftp:x:507:507::/htdocs/ftpjail:/bin/bash
rsynftp:x:508:508::/htdocs/projets:/bin/bash
mirror:x:509:509::/htdocs:/bin/bash
jony:x:510:510::/home/jony:/bin/ksh
amyk:x:511:511::/home/amyk:/bin/ksh

Finally, this script lists both system and users accounts:

 
#!/bin/bash
# Name: listusers.bash
# Purpose: List all normal user and system accounts in the system. Tested on RHEL / Debian Linux
# Author: Vivek Gite <www.cyberciti.biz>, under GPL v2.0+
# -----------------------------------------------------------------------------------
_l="/etc/login.defs"
_p="/etc/passwd"
 
## get mini UID limit ##
l=$(grep "^UID_MIN" $_l)
 
## get max UID limit ##
l1=$(grep "^UID_MAX" $_l)
 
## use awk to print if UID >= $MIN and UID <= $MAX and shell is not /sbin/nologin   ##
echo "----------[ Normal User Accounts ]---------------"
awk -F':' -v "min=${l##UID_MIN}" -v "max=${l1##UID_MAX}" '{ if ( $3 >= min && $3 <= max  && $7 != "/sbin/nologin" ) print $0 }' "$_p"
 
 
 
echo ""
echo "----------[ System User Accounts ]---------------"
awk -F':' -v "min=${l##UID_MIN}" -v "max=${l1##UID_MAX}" '{ if ( !($3 >= min && $3 <= max  && $7 != "/sbin/nologin")) print $0 }' "$_p"

Sample outputs:

----------[ Normal User Accounts ]---------------
vivek:x:500:500::/home/vivek:/bin/bash
raj:x:501:501::/home/raj:/bin/ksh
ash:x:502:502::/home/ash:/bin/zsh
jadmin:x:503:503::/home/jadmin:/bin/sh
wwwint:x:506:506::/htdocs/intranet:/bin/bash
scpftp:x:507:507::/htdocs/ftpjail:/bin/bash
rsynftp:x:508:508::/htdocs/projets:/bin/bash
mirror:x:509:509::/htdocs:/bin/bash
jony:x:510:510::/home/jony:/bin/ksh
amyk:x:511:511::/home/amyk:/bin/ksh
----------[ System User Accounts ]---------------
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
saslauth:x:499:499:"Saslauthd user":/var/empty/saslauth:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
webalizer:x:67:67:Webalizer:/var/www/usage:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
memcached:x:498:496:Memcached daemon:/var/run/memcached:/sbin/nologin
squid:x:23:23::/var/spool/squid:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/cache/rpcbind:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

processor and other information in Centos

link

Вот несколько простых команд для получения необходимой информации о системе.

Просмотр общей памяти 
# grep MemTotal /proc/meminfo
MemTotal: 515340 kB

Просмотр swap памяти

# grep SwapTotal /proc/meminfo
SwapTotal: 1048568 kB

Просмотр модели процессора

# grep "model name" /proc/cpuinfo
model name : Intel(R) Core(TM)2 Quad CPU Q8300 @ 2.50GHz

Просмотр дистрибутива и версии Linux

# cat /etc/issue 
CentOS release 5.4 (Final)
Kernel on an m

Просмотр версии ядра Linux

# uname -r
2.6.18-164.el5
Просмотр наличия установки необходимого пакета 
# rpm -q make
make-3.81-3.el5
Просмотр имени хоста 
# hostname 
alfa.alldba.ru

Лимит ресурсов

#ulimit -a

Лимиты для VPS

#cat /proc/user_beancounters

Проверка производительности и нагрузка сайта 100 запросов 5тью потоками 

#ab -n 100 -c 5 http://localhost/test.html 

sh auto fetsh and pull

sh fetch.sh

fetch.sh:

#!/bin/bash 
echo 
echo "*************************************"
echo "*                      stencilapp                                   *"
echo "*************************************"
cd e:/ops/yd/sites/stencilapp
git stash -a
git clean -xfd
rm -rf .git/FETCH_HEAD
git pull

Nginx, ошибка accept() failed (24: Too many open files)

link

Для одного хостинга картинок арендован выделенный сервер. На нем LAMP с nginx-фронтендом.
В один прекрасный день Nginx начинает периодически выдавать ошибку 500 при заходе на страницы.

В логах что-то похожее на

Цитата: 
[alert] 8668#0: accept() failed (24: Too many open files)


Это значит, превышен лимит количества одновременно открытых файлов. 

Решаем:
В конец файла /etc/security/limits.conf нужно добавить такие строки:

Цитата: 
* soft nofile 16384
* hard nofile 16384



В текущей консоли от рута (от судо не пашет) сделать

Цитата: 
ulimit -n 16384


Хотя это необязательно, если есть возможность перезагрузить сервер.

В /etc/nginx/nginx.conf прописать новое значение worker_connections, равное 16384 поделить на значение worker_processes.

Если не делали ulimit -n 16384, нужно выполнить перезагрузку, после чего проблема отступит.

1) Читаем логи. (Если пустые чиним)
2) Если после починки видна в логах ошибка accept() failed (24: Too many open files)
В конфиг nginx прописвыем(к примеру):

worker_processes 2;

worker_rlimit_nofile 16384;

events {
worker_connections 8192;
}


Исходя из статьи:

В /etc/nginx/nginx.conf прописать новое значение worker_connections, равное 16384 поделить на значение worker_processes.