Нет доступа к внешнему жесткому диску.

Для протокола я хочу предложить использовать /etc/cron.d/. Только root может писать файлы здесь, но записи могут быть настроены для запуска от имени любого пользователя (без необходимости sudo во время выполнения),

echo '0 0 * * 0 webadmin /usr/local/bin/tidy_logfiles' >/etc/cron.d/my_webadmin

Важной частью является то, что my_webadmin должен быть уникальным для вас (не обязательно уникальным для запуска, хотя), потому что любой пакет установки также может писать файлы здесь, и вы хотите избежать столкновения. Имея это ограничение уникальности, вы можете обновлять my_webadmin простой перезаписью, поскольку вы знаете, что это "ваш" файл и он не будет содержать записей для кого-либо/чего-либо еще.

Более того, при таком подходе удаление записи cron становится тривиальным

rm -f /etc/cron.d/my_webadmin

Возможно, это выходит за рамки вашего вопроса, но если у вас есть удаленный доступ к учетной записи root (или через sudo), вы можете даже предоставить удаленное обеспечение,

echo '0 0 * * 0 webadmin /usr/local/bin/tidy_logfiles' > ~/webadmin.cron
scp -p ~/webadmin.cron root@remote_host:/etc/cron.d/my_webadmin

или,

echo '0 0 * * 0 webadmin /usr/local/bin/tidy_logfiles' |
    ssh -q root@remote_host 'cat >/etc/cron.d/my_webadmin'

и удалить инициализацию,

ssh -nq root@remote_host rm -f /etc/cron.d/my_webadmin

(Обратите внимание, что во многих случаях вы не можете предоставить пароль root для команд scp/ssh, потому что учетная запись root ограничена для предотвращения входа по паролю. Вместо этого вам необходимо установить сертификаты открытого/закрытого ключа. Кроме того, по косвенным признакам локальная учетная запись (какой бы она ни была) будет иметь полный root-доступ к удаленному серверу.)

2
14.05.2015, 00:55
0 ответов

Теги

Похожие вопросы