Почти как ответ nsg: используйте каталог блокировки. Создание каталога является атомарным в соответствии с Linux и Unix и *BSD и много других Ose.
if mkdir $LOCKDIR
then
# Do important, exclusive stuff
if rmdir $LOCKDIR
then
echo "Victory is mine"
else
echo "Could not remove lock dir" >&2
fi
else
# Handle error condition
...
fi
Вы можете поместить PID блокировки sh в файл в каталоге блокировки для отладки целей, но не попадаете в прерывание размышления, что можно проверить, что PID, чтобы видеть, выполняется ли процесс блокировки все еще. Много условий состязания ложится тот путь.
Порт SSH того сервера должен быть достижимым от Вашего домашнего Интернет-соединения для этого для работы. Это любой требует
a) VPN
или
b) перенаправление портов в маршрутизаторе клиентского офиса, который выставляет порт SSH сервера Интернету (я предполагаю здесь, что клиентский офис использует некоторый маршрутизатор NAT).
Если у Вашего клиента нет статического IP-адреса для их Интернет-соединения, Вам также нужен путь, действительно определяют их текущий IP-адрес для этого для работы, например, некоторые услуги DynDNS.