Bash Check Если пользовательский ключ не удается -- bash поле с участием sshfs пол Связанный проблема

bash check if user mount fails


4
vote

проблема

русский

Я пишу скрипт для передачи некоторых файлов на SFTP. Я хотел сделать передачу как локальную передачу, установив каталог с SSHFS, потому что он делает создание необходимой структуры каталогов намного проще. Проблема у меня есть, я не уверен, как бороться с ситуацией не иметь сетевого подключения. По сути, мне нужен способ сказать, не удалось ли команда SSHFS. Любые идеи, как вызвать залог скрипта, если удаленный каталог не может быть установлен?

Английский оригинал

I'm writing a script to transfer some files over sftp. I wanted do the transfer as a local transfer by mounting the directory with sshfs because it makes creating the required directory structure much easier. The problem I'm having is I'm unsure how to deal with the situation of not having a network connection. Basically I need a way to tell whether or not the sshfs command failed. Any ideas how to cause the script to bail if the remote directory can't be mounted?

</div
     

Список ответов

6
 
vote
vote
Лучший ответ
 

Просто проверить ли <код> sshfs возвращает 0 (успех):

 <код> sshfs user@host:dir mountpoint || exit 1   

Вышесказанное работает, потому что в Bash логично-или <код> || выполняет Оценка короткого замыкания . Приятное решение, которое позволяет печатать сообщение об ошибке, заключается в следующем:

 <код> if !( sshfs user@host:dir mountpoint ); then   echo "Mounting failed!"   exit 1 fi   

Редактировать:

Я бы указывал, что именно поэтому вы проверяете успех в значительной степени любого хорошо поведенческого приложения на большинстве платформ. - Sparr 1 мин назад

действительно. Чтобы разработать немного больше: большинство приложений возвращаются 0 на успех, а другая ценность по ошибкам. Оболочка знает это и, таким образом, интерпретирует возвращаемое значение 0 как True и любое другое значение, что и ложное. Следовательно, логический или и негативный тест (используя восклицательный знак).

 

Just test whether sshfs returns 0 (success):

sshfs user@host:dir mountpoint || exit 1 

The above works because in bash the logical-or || performs short-circuit evaluation. A nicer solution which allows you to print an error message is the following:

if !( sshfs user@host:dir mountpoint ); then   echo "Mounting failed!"   exit 1 fi 

Edit:

I would point out that this is how you check the success of pretty much any well behaved application on most platforms. – Sparr 1 min ago

Indeed. To elaborate a bit more: most applications return 0 on success, and another value on failure. The shell knows this, and thus interprets a return value of 0 as true and any other value as false. Hence the logical-or and the negative test (using the exclamation mark).

</div
 
 
   
   
2
 
vote

Я пытался проверить, был ли каталог не является монтированием для sshfs Mount. Использование приведенного выше примера не удалось:

 <код> if !( mountpoint -q /my/dir ); then     echo "/my/dir is not a mountpoint" else     echo "/my/dir is a mountpoint" fi   

ошибка: <код> -bash: !( mountpoint -q /my/dir ): No such file or directory

Я внесен свой код следующим и имел успех:

 <код> if (! mountpoint -q /my/dir ); then     echo "/my/dir is not a mountpoint" else     echo "/my/dir is a mountpoint" fi   
 

I was trying to check if a directory was not a mountpoint for an sshfs mount. Using the example from above failed:

if !( mountpoint -q /my/dir ); then     echo "/my/dir is not a mountpoint" else     echo "/my/dir is a mountpoint" fi 

The error: -bash: !( mountpoint -q /my/dir ): No such file or directory

I amended my code with the following and had success:

if (! mountpoint -q /my/dir ); then     echo "/my/dir is not a mountpoint" else     echo "/my/dir is a mountpoint" fi 
</div
 
 

Связанный проблема

20  Переименование набора файлов до 001, 002, ... на Linux  ( Renaming a set of files to 001 002 on linux ) 
Я изначально имел набор изображений формы Image_001.jpg, image_002.jpg, ... Я прошел через них и удалил несколько. Теперь я хотел бы переименовать оставшиес...

0  Отличитель B / W ls -la и ls -la> ls-1.txt  ( Difference b w ls la and ls la ls 1 txt ) 
Если я сделаю ls -la, я получаю такие результаты, как <код> total 16 drwxr-xr-x 4 rockse staff 136 Apr 28 16:55 . drwx------+ 23 rockse staff 782 Apr ...

-1  В чем разница между PS | WC и PS R | WC в Linux?  ( Whats the difference between ps wc and ps r wc in linux ) 
Я пытаюсь выяснить, в чем разница между <код> ps | wc и <код> ps r | wc ...

1954  Как изменить выходной цвет echo в Linux  ( How to change the output color of echo in linux ) 
Я пытаюсь распечатать текст в терминале, используя команду echo. Я хочу распечатать текст в красном цвете. Как я могу это сделать? ...

2  Команда Tesseract Unicharset_Extractor не найден  ( Tesseract unicharset extractor command not found ) 
Моя проблема Бег <код> unicharset_extractor и получение: Unicharset_Extractor: не найдено команду Моя среда <код> OSX El Capitan Version 10.11....

12  Самый быстрый способ сравнить состояние каталога или хеширование для удовольствия и прибыли  ( Fastest way to compare directory state or hashing for fun and profit ) 
У нас есть приложение PHP, и думали, что это может быть выгодно иметь приложение знать, было ли изменение в его макияже с момента последнего выполнения. В осн...

2  Запустите скрипт оболочки внутри контейнера  ( Run shell script inside a container ) 
Я использую lemonlatte / docker-webvirtmgr в качестве базового файла, но проблема в том, что нет ключей SSH, настроенных для пользователя www-data, поэтому я ...

263  Как я могу преобразовать вкладки в пробелы в каждом файле каталога?  ( How can i convert tabs to spaces in every file of a directory ) 
Как я могу преобразовать вкладки в пробелы в каждом файле каталога (возможно, рекурсивно)? Также есть способ установить количество пробелов на вкладку? ...

94  Автозаполнение Bash в Emacs Shell-Mode  ( Bash autocompletion in emacs shell mode ) 
в терминале GNOME, Bash делает Smart Auto-завершение. Например <код> apt-get in<TAB> становится <код> apt-get install в режиме Emacs Shell-mode, э...

19  MD5 Все файлы в каталоге дерева  ( Md5 all files in a directory tree ) 
У меня есть каталог со структурой, как так: <код> . ├── Test.txt ├── Test1 │   ├── Test1.txt │   ├── Test1_copy.txt │   └── Test1a │   ├── Test1a.txt │ ...

1  Цикл всеобъемлющий с 0,5  ( Loop increasement with 0 5 ) 
У меня есть цикл, который пишет в файл, но я хочу написать каждое значение 0,5 в файл. Я пробовал с <код> let count+=0.5 , но это не сработало как-то. Это воз...

0  За петлю в Bash просто работает один раз  ( For loop in bash just runs once ) 
Я делаю проверку разрешения в Bash, но этот цикл просто работает один раз и заканчивается без ошибки: <код> for file in *; do WIDTH = $(identify -ping -f...

0  Как несколько пользователей могут использовать ту же иерархию каталога для выполнения операций GIT?  ( How can multiple users use the same directory hierarchy for doing git operations ) 
У меня есть .git / config файл, который имеет несколько пользователей, определенных как: <код> [user] name=user1 email=user1@domain.com name=u...

1  Как мне запустить команду во всех файлах в папке (которая имеет подпункты), используя exiftool?  ( How do i run a command on all files in a folder which has sub folders using ex ) 
У меня есть папка, называемая фотографии & amp; Видео . У него есть папки для различных лет, для которых у меня есть фотографии и видео. В течение года пап...

0  Вложенный во время петли в скрипте Bash - внутреннее пропущенное  ( Nested while loop in bash script inner being skipped ) 
Я попробовал читать на этом, но не могу найти что-то, что исправляет мою проблему .. Проблема: у меня есть вложенный пока цикл, а внутренний пропускается полн...

Связанный проблема

20  Переименование набора файлов до 001, 002, ... на Linux 
0  Отличитель B / W ls -la и ls -la> ls-1.txt 
-1  В чем разница между PS | WC и PS R | WC в Linux? 
1954  Как изменить выходной цвет echo в Linux 
2  Команда Tesseract Unicharset_Extractor не найден 
12  Самый быстрый способ сравнить состояние каталога или хеширование для удовольствия и прибыли 
2  Запустите скрипт оболочки внутри контейнера 
263  Как я могу преобразовать вкладки в пробелы в каждом файле каталога? 
94  Автозаполнение Bash в Emacs Shell-Mode 
19  MD5 Все файлы в каталоге дерева 
1  Цикл всеобъемлющий с 0,5 
0  За петлю в Bash просто работает один раз 
0  Как несколько пользователей могут использовать ту же иерархию каталога для выполнения операций GIT? 
1  Как мне запустить команду во всех файлах в папке (которая имеет подпункты), используя exiftool? 
0  Вложенный во время петли в скрипте Bash - внутреннее пропущенное 



© 2021 www.qaru.top All Rights Reserved. Q&A House все права защищены


Licensed under cc by-sa 3.0 with attribution required.