обработка логина в сценарии автоматического резервного копирования - PullRequest
2 голосов
/ 08 мая 2009

Мне нужно написать сценарий оболочки, который будет запускаться ежедневно для резервного копирования каталога с помощью Mercurial. Я выполнил большинство сценариев использования, за исключением того, что я могу найти способ сделать автоматический вход в систему во время работы скрипта.

for REPOSITORY in $@ 
do
    cd $REPOSITORY

    # commit the changes
    hg commit -A -m "Commit changes `date`"

    # push the changes to the remote repository
    if hg push 
    then
        logger hg push success
    else
        logger hg push failure
    fi
done

запрос на вход в систему отображается после ввода команды hg push.

Ответы [ 2 ]

7 голосов
/ 24 мая 2009

Я согласен с тем, что вам следует настроить скрипт резервного копирования для неинтерактивных входов в систему. Один из способов - использовать ключи SSH , а более простое решение - включить пароль непосредственно в URL.

Mercurial 1.3 значительно облегчает включение паролей HTTP в ваши файлы конфигурации. Теперь у меня есть

[auth]
bb.prefix = https://bitbucket.org/mg/
bb.username = mg
bb.password = pw

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

На самом деле я использую другую новую функцию, чтобы не вводить пароль в ~/.hgrc, так как я могу захотеть показать этот файл другим. Вместо этого у меня есть

%include .hgauth

в ~/.hgrc и ~/.hgauth имеет вышеуказанный раздел [auth] и доступен для чтения только мне.

3 голосов
/ 08 мая 2009

Mercurial позволяет вам ввести имя пользователя и пароль в URL репозитория:

hg push http://username:password@hg.myco.com/repo

Если вы не хотите указывать URL-адрес в командной строке, вы можете отредактировать файл hgrc для локального репозитория и ввести имя пользователя и пароль в default-push URL:

default-push = http://username:password@hg.myco.com/repo

Это означает, что любой hg push будет использовать имя пользователя, указанное в файле hgrc.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...