Вы можете запустить скрипт с at и перенести его как свою окончательную инструкцию. Например, как это:
$ cat > $HOME/my.job <<END
do this
do that
cat "$HOME/my.job" | at now + 5 minutes
END
$ sh ~/my.job
Для того, чтобы остановить работу, удалить его из очереди at:
$ atq
5 Wed Nov 2 11:25:00 2016 a zwets
$ atrm 5
Или просто удалить файл my.job, так что следующий выполнение cat "$HOME/my.job" будет ошибкой, поэтому at не будет вызываться, а перепланирование не произойдет.
Вот как я получил atftpd, работая в 12.04:
/etc/default/atftpd
a. Измените inetd=true
на inetd=false
b. Удалены все параметры многоадресной рассылки, добавлены --bind-address=<my local static ip>
c. Создал каталог /tftpboot
(измените /etc/default/atftpd
соответственно, поскольку каталог по умолчанию - что-то еще) с пользователем nobody
group nogroup
d. Также добавлен --logfile /var/log/atftpd.log
(сначала touch /var/log/atftpd.log
и соответственно установите разрешения) e. Установите --verbose=7
для захвата всех сообщений /etc/rlinetd.conf
и предоставите сервисы только в локальной сети, указав мой интерфейс как мой локальный IP-адрес. rlinetd
invoke-rc.d atftpd start
как root. Надеюсь, это полезно.
Я проверил исходный код atftpd и выяснил, что рабочая строка для /etc/default/atftpd
-
USE_INETD=false
OPTIONS="--tftpd-timeout 300 --retry-timeout 5 --port=69 --maxthread 100 --verbose=5 /srv/tftp"
. Вам нужно указать порт, чтобы обмануть atftpd. Таким образом, теперь tftp-сервер доступен со всех сетевых интерфейсов.