Как @Casey примечания, помещая команду в подоболочку работает:
$ ( cat <foo ) 2>bar
Однако подоболочка не необходима. Простой список работает точно также:
$ { cat <foo ; } 2>bar
Вам даже не нужен список, если Вы замечаете, что порядок, в котором сделаны перенаправления, имеет значение:
$ cat <foo 2>bar
bash: foo: No such file or directory
$ cat 2>bar <foo
Мое заключение состоит в том, что то, что имеет значение, является заказом обработки удара: проблема - был ли stderr перенаправлен прежде или с момента, когда удар обнаруживает, что перенаправление stdin перестало работать. Таким образом нет никакого вывода от последнего примера выше, потому что удар сначала перенаправляет stderr и затем пытается открыть нечто для stdin.
Подход, который часто удобный, - это установить файлы, а затем получить доступ к ним, как вы получите доступ к обычным локальным файлам. Для сервера, который вы получаете через FTP, вы можете использовать CurlftPFS .
mkdir theserver
curlftpfs theserver.example.com theserver
Вам нужно будет пройти имя пользователя и пароль для CurlftPFS, либо в командной строке (которая небезопасно, как другие пользователи на вашем компьютере смогут их увидеть) или в файле ~ / .NETRC
(настоятельно рекомендуется). Вот образец строки NETRC:
machine theserver.example.com login remoteusername password swordfish
Теперь, когда вы смонтировали FTP-сервер в качестве каталога на вашем компьютере, вы можете использовать обычные команды, такие как LS
, CP
, и т.д. , Например, чтобы скопировать файл из каталога, который приходит в течение последнего в лексикографическом порядке (должно быть в порядке, если ваши имена файлов фактически содержат дату до времени):
set -- theserver/remote/path/T*
eval "last=\${$#}"
cp -p -- "$last/new.txt" "/some/where/local/${last##*/}.txt"
или для копирования последнего файла, предполагая, что имена файлов участвуют Содержать недействительные персонажи или Ньюлайн:
cd theserver/remote/path
last=$(ls -t -- T*/new.txt | head -n 1)
cp -p -- "$last" "/some/where/local/${last%/*}.txt"
OpenVPN - обычный демон Unix, его можно просто запустить из командной строки. Дополнительные пакеты для Enterprise Linux (EPEL) содержат пакет OpenVPN, который можно установить. Затем необходимо записать (или скопировать) конфигурационный файл, сертификаты и т.д.
-121--217329-Сначала попробуйте установить, что приведет к ошибке.
dpkg -i percona-toolkit.deb
Затем выполните следующие действия для установки и устранения недостающих зависимостей.
apt-get install --fix-missing -f
Затем повторите попытку установки пакета .deb
dpkg -i percona-toolkit.deb
-121--83292- Если периодически выполняется сценарий, можно использовать wget -N
, см.:
https://superuser.com/questions/283481/how-do-i-properly-set-wget-to-download-only-new-files
Можно создать сценарий, например:
cd /var/download_here/
wget -N ftp://example.com/new.txt --ftp-user="my_user" --ftp-password="my_password"
и добавить crontab
запись, например:
*/5 * * * * /path/to_script
. Если что-то записывается в него и файл не заблокирован - в итоге можно загрузить неполный файл.