Если Вы хотите использовать wget, вот способ протестировать размер файла без загрузки:
wget --spider $URL 2>&1 | awk '/Length/ {print $2}'
где $URL
URL файла, который Вы хотите загрузить, конечно.
Таким образом, можно обусловить сценарий на основе вывода. такой как:
{ [ $(wget --spider $URL 2>&1 | awk '/Length/ {print $2}') -lt 20971520 ] && wget $URL; } || echo file to big
для ограничения размера загрузки к 20 МБ.
(код ужасен только для информационных целей).
nohup -ga $(pgrep sftp)
Можно сделать Ctrl+Z, bg
, disown
в ksh также. Вы хотели бы это в дополнение к nohup
, т.е.
nohup sftp server1
...
<Ctrl+Z>
bg
disown
Однако моя рекомендация здесь состояла бы в том, чтобы использовать экран. В OpenSolaris это находится в SUNWscreen
пакет. Выполненный screen
, который запускает оболочку в новом виртуальном терминале. Выполненный sftp server
в той оболочке (можно также непосредственно работать screen sftp server
). Инициируйте свою передачу, затем введите Ctrl+A D для разъединения (“отсоединяются”) от экранной сессии. Процессы в сессии будут продолжать бежать. Позже, можно повторно прикрепить к той экранной сессии с screen -rd
.
disown
находится в OpenSolaris, я не думал, что это была новая возможность. Необходимо смочь просто отбросить a screen
исполняемый файл или компиляция это из источника и помещенный этому в Вашу учетную запись — по крайней мере, на экране OpenSolaris не нужно никакое дополнительное разрешение. Сбой этого Вы могли установить a bash
исполняемый файл в Вашей учетной записи.
– Gilles 'SO- stop being evil'
01.12.2010, 01:41
если Вы в ksh под следующим Соляриса - просто одноэтапное для всех:
% команда nohup> command.log 2> &1 и
хорошо при выходе затем из ksh терминала.