Поиск по этому блогу

вторник, 31 октября 2017 г.

запуск cgi на хост-площадке

Так как доступа к конфигурации web-сервера на хостинге обычно не дают, в качестве альтернативы следует использовать файл .htaccess

Например, чтобы разрешить выполнение cgi-скриптов добавим несколько строк:
AddHandler cgi-script .sh #расширение скрипта
Options +ExecCGI 

А для запуска скрипта вместо index.html добавляем:
DirectoryIndex {путь/до/скрипта}

Использовалась информация из следующих источников:
https://sprinthost.ru/support/howto/htaccess.html
https://beget.com/ru/articles/htaccess

понедельник, 30 октября 2017 г.

Поиск по шаблону с неполным совпадением.

При поиске с помощью команды find можно частично указать шаблон, для этого как обычно используются "звёздочки", но само выражение неприменно берётся в кавычки, например:

find /usr/ -name "*sh"

Ошибка при обновлении пакета расширений для VirtualBOX

Debian stretch (DE нет).
VirtualBOX 5.1, установленный из репозитория virtualbox.org при запуске предложил обновиться до 5.2, согласился, сам гипервизор обновился нормально, а вот extension_pack не захотел, сказал:

The installer failed with exit code 127: Error creating textual authentication agent: Error opening current controlling terminal for the process (`/dev/tty'): No such device or address.

Установил ExtPack консольной командой через sudo, однако пакет установился в домашнюю директорию root и оказался недоступен текущему пользователю. С подачи умных людей установил policykit-1-gnome, запустил

/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1 &

И всё заработало.
Сам по себе этот policykit мне показался штукой полезной для комфортной работы в GUI, поэтому добавил его в ~/.xinitrc

Использовалась информация из следующих источников:
https://forums.virtualbox.org/viewtopic.php?f=7&t=60514

четверг, 3 августа 2017 г.

Странная проблема с apt/dpkg

Установил Debian 9.1. Во время установки никаких ошибок не было, сразу после установки при попытке установить любое приложение с помощью apt получаю такой отлуп:
dpkg: предупреждение: «start-stop-daemon» отсутствует в каталогах, перечисленных в PATH, или не является исполняемым
dpkg: ошибка: в каталогах PATH не найдена 1 ожидаемая программа или исполняемый файл
Замечание: В PATH суперпользователя обычно должны присутствовать /usr/local/sbin, /usr/sbin и /sbin
E: Sub-process /usr/bin/dpkg returned an error code (2)

echo $PATH возвращает /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Подглядел на рабочей системе, что "потерянный" бинарник должен быть в каталоге /sbin
Поиск сообщил мне, что данный файл является частью dpkg, хотя сам по себе dpkg был установлен и даже работал, но видимо что-то в процессе установки пошло не так. Значит остаётся переустановить пакетный менеджер.
Скачиваем нужные пакеты apt-get download dpkg и устанавливаем (почему-то dpkg -i меня тоже обругал, поэтому пришлось найти альтернативный способ) dpkg-deb -x dpkg* /
И это помогло.
Причина такого глюка скорее всего в битой оперативке на данном сервере, но это уже другая история.
Используемые материалы:
https://manpages.debian.org/wheezy/dpkg/start-stop-daemon.8.en.html
https://debianforum.ru/index.php?topic=7522.15

вторник, 29 ноября 2016 г.

Пример плохого сценария резервного копирования.

Нужно было по-быстрому организовать резервирование пользовательских файлов в ОС Windows, без привлечения коммерческих продуктов.

1. Подключил smb шару как сетевой диск X:
2. Написал следующий bat сценарий:
@echo off
::присваеваем переменной xcd значение текущей даты в формате подходящем для xcopy
set xcd=%date:~3,2%-%date:~0,2%-%date:~6,4%
::считываем из файла date значение даты создания последней резервной копии
for /f %%i in (X:\date) do set pd=%%i
::если значение даты создания последней резервной копии отсутствует, создаём полную копию, если присутствует резервируем все файлы старше даты создания последней резервной копии
if not defined pd (xcopy "C:\users\username" X:\full\ /Y /V /Z /E /D) else (xcopy "C:\
users\username" X:\%xcd%\ /Y /V /Z /E /D:%pd%)
::передаём файлу
date значение даты создания резервной копии
echo %xcd%>X:\date
exit /b

3. Для сокрытия окна вывода терминала, запускается bat таким jscript:
new ActiveXObject('WScript.Shell').Run('C:\\users\\username\\backup.bat',0,false)

суббота, 10 сентября 2016 г.