PostgreSQL как посмотреть, где хранятся файлы БД на Linux-машине

Тема на 5 минут. Если сервер настраивался не вами, то бывает сразу сложно разобраться, где лежат файлы БД PostgreSQL, т. к. их расположение может быть настроено отличным, от по-умолчанию, образом.

Поможет в этом следующая консольная команда:

ps auxw | grep postgres | grep — -D

в итоге, мы получим  нечто на подопбии такого:
postgres 12917  0.0  0.1 118783 60648 ?        S    Jul27   0:01 /usr/pgsql-9/bin/postgres -D /data/postgres-9
Вот после опции -D и указан каталог, в котором лежат файлы БД (обычно в подпапке base).
http://geckich.blogspot.com/

Удаленное выполнение команд на Windows

Для удаленного выполнения команд в Windows есть отличная штука – PsExec. Принципиально похожа на линуксовый SSH. Эта утилита работает со всеми версиями Windows, начиная с XP (XP, 2003, Vista, 2008, 7,8, 2012).

Итак, на локальной машине скачиваем утилиту (точнее, набор утилит), с сайта Microsoft Technet и распаковываем, например, в папку C:PSTools.
Далее, открываем консоль путем [Win+R] или Пуск – Выполнить – cmd.
Переходим в распакованную папку:

cd C:PSTools

Теперь мы можем выполнять команды на удаленной Windows машине, запуская psecex в таком формате:

psexec \remote_name_or_ip -u user -p password command

На удаленной машине должны быть запущены службы Server и Workstation.

Вот так – из-коробки – работает только на Windows 2003/XP. В версиях начиная с Vista из-за другого механизма доступа (UAC и т. д.), необходимо немного “пошаманить”.

На удаленной машине под управлением Windows Vista или поздней открываем Редактор Реестра (Start – Run – regedit) и создаём ключ реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystemLocalAccountTokenFilterPolicy типа DWORD и со значением 1.

Всё, теперь можно выполнять команды и на удаленной Vista+ системе, выполняя следующую команду:

psexec \remote_name_or_ip -u user -p password -h command

Флаг -h нужен, чтобы запустить команду от имени Администратора.

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

А для того, чтобы получить шелл на удаленной машине, выполняем команду:

psexec \remote_name_or_ip -u user -p password -h cmd

Ссылки:

  1. http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx
  2. http://forum.sysinternals.com/faq-common-pstools-issues_topic15920.html
  3. http://stackoverflow.com/questions/828432/psexec-access-denied-errors
http://geckich.blogspot.com/