Основные команды для работы в SSH

ls [каталог] — список файлов в текущем каталоге, либо список файлов в каталоге, указанном каталоге
cd [каталог] — перейти в каталог, если параметр не указан — перейти в домашнюю папку
cat file — вывести все содержимое файла
rm file1 [file2] [file3] […] [fileX] — удаление файла или папки
touch file — создать пустой файл
less file — вывести содержимое файла постранично
more file — вывести содержимое файла постранично (аналог less)
head file — вывести 10 первых строк файла
tail file — вывести 10 последних строк файла
mv from to — переместить или переименовать папку или файл from в to
cp from to — скопировать папку или файл from в to
pwd — показать текущий каталог
whereis program — где расположены файлы программы program

Утилиты:
tar — работа с архивами
tar -cvf archive.tar /папка – создать архив .tar с папки /папка
tar -czvf archive.tar.gz /папка – создать .tar.gz с папки /папка
tar -cjvf archive.tar.bz2 /папка – создать .tar.bz2 с папки /папка
tar -xvf archive.tar.gz — распаковать архив archive.tar.gz
mc — консольный файл-менеджер (поддержка FTP, sFTP, SMB)
top — диспетчер задач
chown [-R] user[:group] /папка/или/файл — утилита для назначения владельца к файлу или папке «/папка/или/файл». Ключь -R позволяет назначит владельца рекрусивно. Вместо user необходимо указать верного пользователя.
chmod [-R] 000 /папка/или/файл — утилита для назначения прав доступа к файлу или папке «/папка/или/файл». Ключь -R позволяет назначит права рекрусивно. Вместо 000 необходимо указать необходимые права.
grep what — утилита для поиска по регулярному выражению и его последующего вывода. Использование cat /var/log/messages | grep Firewall
ps — утилита мониторинга запущенных процессов. Что бы просмотреть запущенные процессы демона Apache использовать можно так: ps ax | grep httpd
which программа — показывает полный путь к исполняемому сценарию, ищет в папках, указанных в переменной $PATH
wget http://site.ua/file.zip — утилита,, позволяющая скачивать файлы по протоколам FTP, HTTP.
Параметр -O /папка/file.zip указывает в какой файл производить скачку или докачку.
whois — утилита, которая показывает информацию о домене
host, nslookup, dig — утилиты для просмотра информации о доменных именах.
mysqldump — утилита для бекапов баз данных MySQL.
Использование: mysqldump -u root -p database > file.sql при запросе пароля его вводим,
если хотите без запроса — меняем ключь -p на -pВАш_ПАРОЛЬ (пробел отсутствует).
mysql — утилита для работы с базами данных MySQL.
Использование утилиты на примере восстановления базы данных:
mysql -p root -p database < file.sql при запросе пароля его вводим, если хотите без запроса —
меняем ключь -p на -pВАш_ПАРОЛЬ (пробел отсутствует).
diff file1 file2 — утилита для сравнивания двух файлов. Существует дополнительная утилита colordiff, показывающая различия в цвете.
info, man — справочные руководства приложений в UNIX-подобных системах. Использование: info tar илиman mysql.

Преобразование объекта в массив с помощью PHP

Преобразование объекта в массив с помощью PHP происходит с небольшой проблемой. Изначально можно подумать, что это простая задача, решаемая одной строчкой кода. Но это возможно только для простых объектов, а с увеличение сложности объекта — усложняется и задача.

foo = ‘foo’; $obj->bar = ‘bar’; $obj->baz = ‘baz’; /*** преобразование в массив ***/ $array = (array) $obj; /*** просмотр результата ***/ print_r( $array ); ?>

В коде выше мы преобразовываем объект в массив свойств. Результат его обработки и вывода показан ниже. Array ( [foo] => foo [bar] => bar [baz] => baz ) Давайте усложним задачу, сделав свойство bar объектом.

foo = ‘foo’; $obj->bar = new stdClass; $obj->bar->baz = ‘baz’; /*** преобразование объекта в массив ***/ $array = (array) $obj; /*** просмотр результата ***/ print_r( $array ); ?>

Из кода выше можно увидеть, что свойство bar содержит экземпляр класса StdClass. В этом можно убедиться просмотрев результат вывода. Array ( [foo] => foo [bar] => stdClass Object ( [baz] => baz ) ) Как видите, что простого преобразования не достаточно для решения казалось бы тривиальной задачи. Для исправления этой ситуации нам потребуется добавить проверку, которая при нахождении объекта будет производить преобразование.

foo = new stdClass; $obj->foo->baz = ‘baz’; $obj->bar = ‘bar’; /** * * Преобразование объекта в массив * * @param object $object преобразуемый объект * @reeturn array * */ function objectToArray( $object ) { if( !is_object( $object ) && !is_array( $object ) ) { return $object; } if( is_object( $object ) ) { $object = get_object_vars( $object ); } return array_map( ‘objectToArray’, $object ); } /*** преобразование объекта в массив ***/ $array = objectToArray( $obj ); /*** просмотр массива ***/ print_r( $array ); ?>

В результате мы получили многомерный массив, который является истинным представлением массива объекта. Array ( [foo] => Array ( [baz] => baz ) [bar] => bar )

Установка curl в Debian

Обновляем содержимое репозиториев:

apt-get update

Ставим пакет:

apt-get install -y php5-curl

Подключаем новйы модуль PHP к Апачу (иными словами, заставляем Апача перезагрузить свои модули и как следствие перезагрузить PHP расширения):

/etc/init.d/apache2 restart

Убеждаемся, что все подключилось:

php -m | grep curl
curl

Crontab (создать крон по ssh, загрузить cron из файла ssh)

Закачивать сайт можно по протоколу FTP, соединяясь с сервером, где расположен ваш сайт, с помощью FTP-клиента. Но бывают ситуации, когда нужно отладить работу скрипта непосредственно на сервере хостинг-провайдера.

Или сделать автоматический запуск определенного файла в определенное время. Или совершить какие-то манипуляции с базами данных MySQL.
Для всех этих и многих других действий пользователей хостинг-провайдеры предоставляют доступ по защищенному протоколу telnet (а не по ftp), так называемый shell-доступ (ssh-доступ).

Работа с shell — это работа с командной строкой Unix. А так как это другая операционная система, то в ней существуют другие законы, команды и т.п.

Что нужно для работы с ssh? Существует множество программ для работы изWindows. Вы можете скачать Putty или SecureCRT.

Рассмотрим подключение на примере работы с программой Putty.

Все очень просто. Запускаете файл putty.exe

— Откроется окно программы.

— В поле «Host name» прописываете доменное имя вашего сайта. К примеру, site.com

— Выбираете протокол доступа — Protocol SSH.

— Нажимаете «Open». Все, сессия началась. Программа запросит ввести вас логин, вводите тот же, что у вас для доступа по FTP. Затем вводите пароль.

Внимание! Первое, что необходимо запомнить при работе с командной строкой unix— cистема различает регистр букв. То есть файлы типа Pupkin.pl и pupkin.pl и pupkin.Pl — это совершенно разные файлы. Также и пароли wert и WerT — разные пароли!

Итак, вы подключились!

Теперь расмотрим несколько основных команд, которые могут понадобиться при работе с сайтом.

pwd — получить имя текущей папки, где вы находитесь.
cd — изменить текущую директорию

Например, Вы находитесь в директории /home, а Вам нужно попасть в /usr/sbin. Для этого Вам нужно просто набрать команду:

cd /usr/sbin

Вот что при этом Вы увидите на экране:

vvs01% cd /usr/sbin
vvs01%

ls — вывести информацию о файлах или папках

При этом список может быть довольно большой.

Поэтому существуют ключи для этой команды, вот некоторые из них:
-a — вывести все файлы (даже те, имена которых начинаются с точки);
-x — вывод в 4 колонки;
-t — имена файлов сортируются не по алфавиту, а по времени последнего изменения (сначала идут самые свежие, только что измененные файлы);
-R — рекурсивно пройти по всем подкаталогам
-CF — оглавление каталога в несколько столбиков
-al — оглавление в полном формате

Эти ключи нужно подставлять сразу после команды ls.

Вот еще несколько команд:

cat — слить или вывести файлы-аргументы на стандартный вывод
cp — копировать файлы
mv — переместить (переименовать) файлы
ln — создать ссылку на файл

rm — удалить файлы

Формат команды:

rm [-fri] файл …
-i — просить подтверждения на каждое удаление
-r — рекурсивно удалить вместе с подкаталогами
-f — не просить подтверждения, а сразу удалить

rmdir — удалить директорию
mkdir — создать директорию
echo — вывести аргументы командной строки на стандартный вывод

ps — узнать номера выполняемых процессов, т.е. какие программы выполняются.

Формат команды:

ps — запущенные только с этого терминала
ps -e — все
ps -f — в «полном» формате

kill — «убить» выполняемый процес по его номеру
man — выдать справку об использовании и ключах команды

Теперь о том, как запускать файлы автоматически в определенное время.

Для этого существует механизм, называемый cron.

Для каждого пользователя создается конфигурационный файл, куда записывается расписание запуска программ. Данный конфигурационный файл каждую минуту просматривается cron’ом и запускаются те программы, время запуска которых подошло. Редактируется конфигурационный файл с помощью программы crontab.

Вот основные команды:

crontab -e : войти в режим редактирования
crontab -l : вывести все задания крона
crontab -r : удалить все задания

Команда crontab file заменят текущие настройки cron на те, которые содержатся в файле ‘file’. Для этого вам нужно закачать сначала на сервер этот самый файл (например, через ftp), а затем в команде указать полный путь к нему. Пути для вашего сайта можно узнать у своего хостинг-провайдера, он их обычно указывает в инструкциях. В результате, если вы закачали файл raspisanie.txt в папку /pupkin/public_html/mypapka/raspisanie.txt, то команда будет выглядеть так:

crontab /pupkin/public_html/mypapka/raspisanie.txt

Когда вы задаете команду «вывести все задания крона», вы увидите нечто вида:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=pupkin
HOME=/home/pupkin
# run-parts
01 * * * * command
02 4 * * * command

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

А вот на следующие строки внимание уже стоит обратить… Формат этих строк выглядит следующим образом:
Нужная минута часа для запуска (0-59)
Нужный час дня для запуска (0-23)
Нужный день месяца (0-30)
Нужный месяц года (1-12)
Нужный день недели (0-6)
Выполнимая команда.

Значок * обозначает слово каждый (день, год, месяц, час).

Например, строка 01 * * * * command будет обозначать запуск программы каждый час в одну минуту.

А строка 02 4 * * * command означает запуск программы каждый день в 4 часа утра в две минуты.

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

01 * * * * command
02 4 * * * command

где command — ваша команда (запуска определенного скрипта или еще что-то), а затем просто командой «crontab file» перенести все задания из файла в крон, либо вручную все ввести в крон. Первое, на мой взгляд, удобнее.

Вот и все премудрости крона

Событие обрабатывать информацию в реальном времени (onkeypress, onkeydown, onkeyup)

Событие onkeypress срабатывает, когда клавиша на клавиатуре нажата и отпущена, что эквивалентно совместному действию onkeydown и onkeyup.

Это поможет проверять введенную в input информацию в реальном времени

Настройка кронов (cron) в ISP Manager

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

Под заданием планировщика (cron) понимается полный путь до программы, которая должна выполняться автоматически с заданной периодичностью, и, если необходимо, набор аргументов. Более подробную информацию вы можете прочитать в данном документе: http://unixhelp.ed.ac.uk/CGI/man-cgi?cron.

Модуль Планировщик (cron) предоставляет возможности по созданию, изменению, удалению и запуску заданий, а так же настройки параметров, общих для всех заданий планировщика.

Внимание! Данный модуль не доступен для администратора, у которого не установлены права суперпользователя.

Также смотрите статью Технические подробности работы с планировщиком (cron) (ISPmanager).

Модуль «Планировщик»

Изображение:T-bullet.png Просмотр списка заданий планировщика
Изображение:T-new.png Создание нового задания
Изображение:T-edit.png Изменение параметров существующих заданий
Изображение:T-delete.png Удаление заданий
Изображение:T-start.png Запуск задания
Изображение:T-attr.png Настройка глобальных параметров

Просмотр списка заданий планировщика

  • Период — периодичность выполнения задания.
  • Команда — путь до программы, которая должна выполняться автоматически с заданной периодичностью.

Создание нового задания

Чтобы создать новое задание планировщика, нажмите кнопку «Создать» и заполните поля формы:

Модуль «Планировщик»

  • Время на сервере — в данном поле указаны текущие дата и время сервера.
  • Команда — укажите полный путь до программы, которая должна выполняться автоматически с заданной периодичностью, и, если необходимо, набор аргументов. Например: /bin/date «+%d-%m-%Y».
  • Период — установите периодичность выполнения задания:
    • каждый час — задание будет выполняться в 0 минут каждого часа.
    • каждый день — задание будет выполняться ежедневно ровно в 00:00.
    • раз в неделю — задание будет выполняться каждое воскресенье ровно в 00:00.
    • раз в месяц — задание будет выполняться первого числа каждого месяца ровно в 00:00.
    • раз в год — задание будет выполняться каждый год 1 января ровно в 00:00.
    • при перезагрузке — задание будет выполняться после каждой перезагрузки операционной системы.
    • другое — более гибкая настройка периодичности с дополнительным набором полей. Возможны три варианта настройки настройки периодичности минут, часов, дней месяца, дней недели, месяцев и лет:
      • Все — задание будет выполняться каждую минуту (месяц и т.д.).
      • Каждые — задание будет выполняться с указанной периодичностью. Например, если вы укажете «10», то задание будет запускаться каждые 10 минут.
      • Выбранные — если вас не устраивают первые два варианта и вы знакомы с настройкой заданий cron, вы можете указать свои параметры выполнения заданий. Например, */10, 25, 35 означает, что задание будет выполняться каждые 10 минут, а также в 25 и 35 минут.
  • Не посылать отчёт по e-mail — установите флажок, чтобы вывод команды (stdout и stderr) не пересылался на адрес электронной почты, указанный в Глобальных настройках планировщика.

Примеры гибкой настройки периодичности:

Минуты = каждые — 15, часы = выбранные — 5, дни = все, месяцы = все, дни недели = все. Задание будет выполняться каждый день в 5:00, 5:15, 5:30 и 5:45.

Минуты = выбранные — 01, часы = выбранные — 15, дни = все, месяцы = все, дни недели = выбранные — 02. Задание будет выполняться в 15:01 каждый понедельник. День недели 01 соответствует воскресенью.

Внимание! При отключении пользователя его задания планировщика также отключаются.

Изменение параметров существующих заданий

Чтобы изменить параметры существующего задания, выберите его из списка, нажмите кнопку «Изменить» и выполните редактирование. Форма для редактирования аналогична форме создания нового задания.

Удаление заданий

Чтобы удалить задание, выберите его из списка и нажмите кнопку «Удалить». Для предотвращения случайного удаления программа попросит подтвердить или отменить ваши действия. После нажатия кнопки «ОК» выделенное задание будет удалено. При удалении пользователя, его задания планировщика так же удаляются.

Запуск задания

Чтобы проверить работу какого-либо задания планировщика, выделите нужную запись в списке и нажмите кнопку «Выполнить». После этого откроется форма, в которой будет отображён результат выполнения задания.

Настройка глобальных параметров

С помощью данной функции можно настроить параметры, общие для всех заданий планировщика. Для этого выберите необходимое задание, нажмите кнопку «Настройки» и заполните поле формы:

Модуль «Планировщик»

 

  • E-mail — укажите адрес электронной почты, на который будут пересылаться результаты выполнения команд планировщика (stderr и stdout).
  • Пути поиска программ — укажите пути, по которым будет производиться поиск запускаемых программ (переменная PATH). Для новых пользователей эта переменная будет принимать значение по умолчанию «/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin».

Расписание выхода бета версий iOS 7 + График выхода прошлых бета версий

Пользователей, установивших первую бета версию iOS 7, интересует, когда будет обновление с повышением стабильности и исправлением ошибок. Это знают только в Apple, но если обратить внимание на обновление предыдущих операционных систем, можно сделать вывод, что ждать осталось не долго.

В среднем купертиновцы выпускают обновления каждые полмесяца:

— Beta 1 — 14.75 дня;
— Beta 2 — lasts 15.4 дня;
— Beta 3 — lasts 15 дней;
— Beta 4 — lasts 18.6 дня;
— Beta 5 — lasts 17.8 дня;
— Beta 6 — lasts 11 дней.

Если iOS 7 не станет исключением из правил, можно составить приблизительное расписание выпуска обновлений:

— Beta 2 — 24 июня;
— Beta 3 — 10 июля;
— Beta 4 — 25 июля;
— Beta 5 — 12 августа;
— Beta 6 — 30 августа;
— Gold Master — 10 сентября;
— iOS 7 Final — 20 сентября.