Скажем, вы хотите скопировать $local
в $remote
на $host
и добавить туда почасовое задание для выполнения в 14 часов каждый час, используя один сеанс SSH;
ssh "$host" "cat >'$remote' &&
chmod +x '$remote' &&
( crontab -l;
echo '14 * * * * $remote' ) | crontab" <"$local"
Это можеточевидно, будет гораздо более надежным при правильной проверке ошибок и т. д., но, надеюсь, это по крайней мере должно помочь вам начать работу.
Два ключа здесь заключаются в том, что команда ssh
принимает произвольно сложный сценарий оболочки в качестве удаленной команды, иполучает стандартный ввод с локального хоста.
(С двойными кавычками вокруг скрипта все переменные будут интерполированы на локальном хосте; поэтому команда, выполняемая на удаленном хосте, будет выглядеть примерно так: cat >'/path/to/remote' && chmod +x '/path/to/remote' && ...
Содиночные кавычки, в имени файла могут быть пробелы, но я не поместил их в запись crontab
, потому что это так странно. Если вам нужны одинарные кавычки, я считаю, что это должно сработать.)