Очень часто приходится сталкиваться с тем, что необходимо выполнить из консоли определенную команду или набор команд, но заново набирать их в терминале очень лень или просто не помнится что же надо набрать, приходится сидеть и щелкай стрелкой в верх для того чтобы прокрутить историю и найти нужную команду, лично у меня это занимает довольно продолжительное время, так как я очень люблю делать все из под консоли нежели в GUI. Так как быть в этой ситуации? Все очень просто! Нужно создать исполняемый bash скрипт и пользоваться им. Для примера возьмем доступ по SSH.
Итак, первым делом создаем наш будущий исполняемый файл. Это можно сделать двумя способами, либо
$ touch script
либо
$ nano script
В первом случае создастся пустой файл с именем script, во втором текстовый редактор nano создаст его и сразу же откроет для редактирования, я считаю лучше использовать сразу же второй метод.
После открытия скрипта пишем:
#!/bin/bash
ssh username@hostname -p 1234
В первой строке мы указываем к какому интерпретатору необходимо обратиться чтобы наш скрипт выполнился.
Во второй мы пишем желаемую команду. Кстати ключ -p необходимо использовать для указания порта отличного от используемого по умолчанию, если вы используете стандартный (22) порт, то ключ не нужен.
Вот практически и все, сохраняем наш скрипт и он уже рабочий можно даже проверить набрав в консоли
$ bash script
Но это не удобно так как много лишних символов без которых можно успешно обойтись.
А сделать это можно изменив тип файла на исполняемый
chmod +x script
Ключ +x указывает на то что скрипт необходимо разрешить на исполнение
Ну что же вот в принципе и все, запускаем наш скрипт
./script
Теперь даже не нужно запоминать все название скрипта, достаточно запомнить первую букву так как можно будет найти по ней при помощи клавиши Tab
в крон если пихать что то вроде:
#bin/sh
ssh user@server «mysqldump -u$user -p$password $dbname —lock-all-tables —quick | gzip -c» | gzip -d > db.sql
в итоге на локальном создаётся просто файл пустого дампа ! выходит нет подключения по ssh если пихать исполняемый скрипт в крон ???
А зачем делать дамп подключаясь по SSH? Если можно там же на сервере сделать дамп и отправить его по FTP например куда надо?
http://www.ivakorin.ru/%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D1%80%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D1%8B%D1%85-%D0%BA/