Auto mount without fstab

  • create file

/etc/systemd/system/var-nfs.mount

name file mast directory if /var/nfs name var-nfs.mount, if /nfs name nfs.mount

[Unit]
Description=Things devices
After=network.target

[Mount]
What=1.1.2.2:/minio/nfs
Where=/var/nfs
Type=nfs4
Options=rw
Options=_netdev,auto
DirectoryMode=0755

[Install]
WantedBy=multi-user.target
  • and enable service systemctl enable var-nfs.mount

this all, afte reboot this automount nfs

Fail2ban Основные команды

Как показать заблокированные IP-адреса с клиентом Fail2ban

С помощью Fail2ban очень просто отобразить список заблокированных IP-адресов. Сначала вы должны выбрать, в какой тюрьме вы хотите показать заблокированные IP-адреса. Чтобы получить активные тюрьмы, наберите:

fail2ban-client status

Затем вы должны выбрать тюрьму, чтобы показать запрещенные IP-адреса с этой тюрьмой

fail2ban-client status <JAIL-NAME>

Например, чтобы показать запрещенные IP-адреса в типе sshd jail:

fail2ban-client status sshd

Вот и все, если вы хотите вручную разблокировать IP:

fail2ban-client set <JAIL-NAME> unbanip <IP-ADDRESS>

И, наконец, если вы хотите вручную заблокировать IP:

fail2ban-client set <JAIL-NAME> banip <IP-ADDRESS>

Легкая установка разных версий руби

Open your terminal and run

\curl -sSL https://get.rvm.io | bash -s stable
When this is complete, you need to restart your terminal for the rvm to work.

Now, run rvm list known

This shows the list of versions of the ruby.

Now, run rvm install ruby-2.4.1

If you type ruby -v in the terminal, it still shows you ruby 2.0.

To use the latest installed version. Run rvm use ruby-2.4.1

To set this as the default version, run rvm use ruby-2.4.1 --default

install rails

gem install rails -v 4.2
gem install passenger
passenger-install-apache2-module

SSH создать публичный ключ, добавить на машину

Создать ключ если еще не созданн

mkdir ~/.ssh
ssh-keygen -t rsa -q -N '' -f ~/.ssh/id_rsa

Копируем приватный ключ на сервер(свой сервер подставляем)
ssh-copy-id -i ~/.ssh/id_rsa.pub root@example.com

Все теперь можно логиниться без пароля

Еще как то можно создавать алиас логина домена для быстрого доступа, позже напишу

Установка Drupal через drush

Установить друпал можно через командную строку в одну строку!!!! Ну если быть точнее через две.

#Первая строка скачивает drupal
drush dl drupal

#установка друпалла
drush site-install standard --account-name=LoginAdmin --account-pass=passwordAdmin --db-url=mysql://UserDB:PasswordDB@localhost/NameDB

Больше команд можно почитать здесь

Массовое применение patch drupal 7.32

Для того что применить к всем пользователям патч нужно создать файл на сервере (к примеру в корне) с именем к примеру
pathc.patch. Текст в файле, в нашем случаи можно взять, здесь https://www.drupal.org/files/issues/SA-CORE-2014-005-D7.patch

И зайдя через SSH выполнить команду

for i in /home/www/*/data/www/* ; do cd "$i"; echo "$i"; patch -p1 < /patch.patch; done

Путь конечно же под ваш сервер, у меня первая звездочка это пользователи на сервере, вторая сайты.

shell команда find

find — shell команда для поиска файлов и каталогов в иерархии каталогов.  Рассмотрим некоторые способы использования этой команды и несколько ее опций поиска.

Самый простой пример нахождения файла по имени с помощью команды find:

find . -name test

после написания find пишем путь к папке, где надо искать, мы указали точку, то есть искать в текущем каталоге. Дальше ключ -name используется для поиска по имени, после его следует имя папки или файла, который мы ищем.В данном примере мы указали команде искать файл по названию test в текущем каталоге (. — точка это обозначение текущего каталога)

find . -iname test

- тот же поиск по имени, но без учета регистра в названии файлов.

Но, дело в том, что в примере выше мы не указали, что ищем именно файл, по тому, если в текущем каталоге или его подкаталоге существует папка из названием test, то она тоже попадет в результаты поиска. Для указания того, что мы ищем именно файл, и что названия папок в результаты поиска включать не надо, используем ключ «-type»

find . -type f -name test

«-type f» — мы указали, что ищем именно файл (f)
Для того, чтобы в результат включить одни папки с названием test, а файлы не искать, используем
«-type d»

find . -type d -name test

А что, если нам надо найти все файлы с расширением «.db», тогда используем звездочку «*».
* — заменяет любой набор символов. И того, для поиска всех файлов с расширением «.db» в каталоге /var/named используем следующую команду:

find /var/named -type f -name *.db

Тут мы заменили каталог для поиска на /var/named.

Если надо найти файлы или папки по дате их создания или последнего доступа к ним, используем ключ «-atime» — поиск по дате последнего доступа к файлу (или же его созданию, если никто к нему еще не доступался).

find . -type f -atime 1

Мы указали что ищем все фалы в текущем каталоге, которые были созданы или же к ним последний раз доступались за прошлые сутки, то есть больше чем 24 часа и меньше чем 48 часов назад. «-atime n» — считается n*24, то есть в нашем случае 1*24=24 часа назад, и команда ищет именно сколько 24-часовых периодов назад доступались к файлу.

А вот следующая команда найдет все файлы, к которым доступались больше чем 24 назад:

find . -type f -atime +1

Дальше можем найти все папки, к которым доступались больше чем 48 часов назад:

find . -type d -atime +2

Все файлы, к которым доступались за последние сутки:

find . -type f -atime -1

По этому же принципу можем использовать ключи
«-ctime n» — по дате создания или изменения статуса файла или папки
«-mtime n» — поиск файлов, которые были изменены(редактированы, или созданы) n*24 часов назад
«-amin n» — файлы или папки, к которым доступались n минут назад
«-cmin n» — файлы или папки, статус которых был изменен(или были они созданы) n минут назад
«-mmin» — файлы или папки, которые были изменены(или созданы) n минут назад

Можно производить поиск файлов и каталогов по их владельцу(юзеру), используя ключ «-user»:

find . -name *.jpg -user nobody

Мы указали что ищем в текущем каталоге все файлы с расширением .jpg, у которых стоит владелец nobody

Рассмотрим ситуацию, когда нам надо над результатом поиска выполнить какую-либо команду, например удалить все найденные файлы. В таком случае используем ключ «-exec». Он используется для указания другой команды, которую надо выполнить над каждым аргументом результат поиска:

find /tmp -type f -name sess* -exec rm -f {} \;

«/tmp» — указываем что ищем файлы в папке /tmp
«-type f» — ищем только файлы и каталоги в результат поиска не включать
«-name sess*» — все файлы, имя которых начинается из слова «sess»
«-exec rm -f {}» — запустить команду «rm -f»(удаление) для каждого файла
«{}» — заменяет список найденных аргументов
«\;» — конец команды (в данном случае использования «find» указывать обязательно)

Следующий пример показывает как поменять права на все файлы в папке:

find /home/nobody/public_html -type f -exec chmod 644 {} \;

и на все папки:

find /home/nobody/public_html -type d -exec chmod 755 {} \;

Но при замене прав на папки данной командой, на сам каталог public_html тоже права изменяются, так как в результаты будет включен текущий каталог, который обозначается точкой «.». Тогда возвращаем назад:

chmod 750 public_html

Пример того, как можно с помощью команды «find» найти все файлы .htaccess в аккаунте и закоментировать пхп переменные в нем:

find /home/nobody/public_html -type f -name .htaccess -exec replace "php_admin_flag" "#php_admin_flag" -- {} \;
find /home/nobody/public_html -type f -name .htaccess -exec replace "php_flag" "#php_flag" -- {} \;
find /home/nobody/public_html -type f -name .htaccess -exec replace "php_admin_value" "#php_admin_value" -- {} \;
find /home/nobody/public_html -type f -name .htaccess -exec replace "php_value" "#php_value" -- {} \;

Архивация-разархивация через SSH

Как запаковать файлы в tar.gz через SSH
tar -zcvf имя_архива архивируемая_папка
например
tar -zcvf folder.tar.gz folder/
пояснения
- c – значит, что создается новый архив;
- f – посредством этого флага задается имя создаваемого архива;
- z – архивация будет происходить посредством архиватора gzip;
- v – в консоль будет выводиться информация о процессе архивации.

Как запаковать файлы в zip через SSH
zip -r имя_архива архивируемая_папка
например
zip -r logs.zip logs/
пояснения
r означает, что нужно искать файлы в папке рекурсивно, иначе в архиве бы оказалась одна пустая папка.

Как распаковать файлы из tar.gz через SSH
tar -xzvf имя_архива.tar.gz
например
tar -xzvf archive.tar.gz

Как распаковать файлы из zip через SSH
unzip имя_архива.zip
например
unzip archive.zip

Да, еще вот что… Консоль в UNIX имеет некоторые хитрости, которые могут значительно облегчить работу - например автозаполнение имени файла. Согласитесь, было бы глупо для распаковки, к примеру джумлы набирать имя файла Joomla_1.5.22-Stable-Full_Package-Russian.tar.gz вручную?
Этого и не требуется - достаточно набрать первые 2-3 символа и нажать кнопку “tab”
Например, в данном случае набираем
tar -xzvf Jo
жмем “tab” а затем “enter”