Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по Linux (http://forum.oszone.net/forumdisplay.php?f=9)
-   -   как из скрипта проверить подключена ли флешка (http://forum.oszone.net/showthread.php?t=276356)

ejik_off 23-01-2014 18:43 2294874

как из скрипта проверить подключена ли флешка
 
Всем привет!!!
Изучаю линукс и есть задачка:
Цитата:

Раздел 2. Создание сценариев
Простые задания
1. Содержимое домашнего каталога. Выполните рекурсивный обход домашнего
каталога и сохраните информацию в файл. Сожмите файл. Попросите пользователя
вставить флешку и нажать клавишу ENTER. Запишите сжатый файл на флешку.
Вот пока что удалось написать:
Код:

#!/bin/bash
ls -R ~ > listHomDir.txt | tar -czf LHD.tar.gz listHomDir
dialog --msgbox "Вставьте флешку и нажмите кнопку ENTER" 10 30

но вот как определить что флешку вставили? единственное что приходит в голову это проверить папку медиа, не появилась ли там новая папка. Но может есть еще какой то способ?

AMDBulldozer 23-01-2014 19:13 2294894

ejik_off, во-первых, Ваш сценарий содержит ошибки.
Вы не должны использовать конвейер если не передаете ничего с stdout первой команды на stdin второй. Поэтому в приведенном примере вертикальную черту ("|") надо заменить точкой с запятой. Но это всё равно будет плохим вариантом, поскольку следующая команда "tar" вообще не нужна. tar - это команда создания архива. То есть сборки нескольких файлов в один. А у Вас нет нескольких файлов.
Поэтому правильный вариант Вашей команды "ls -R ~ > listHomDir.txt | tar -czf LHD.tar.gz listHomDir" должен выглядеть как-то так:
"ls -R ~ | gzip -9 > LHD.gz"
Теперь по поводу установки флешки. Есть несколько способов проверить её подключеиние.
Можно, например, либо прочитать файл /proc/partitions на предмет появления новых разделов, либо проанализировать последние строчки вывода dmesg.

ejik_off 24-01-2014 06:25 2295102

Цитата:

viktor@ubuntu:~$ cat /proc/partitions
major minor #blocks name

11 0 1048575 sr0
8 0 20971520 sda
8 1 19921920 sda1
8 2 1 sda2
8 5 1046528 sda5
8 16 15695872 sdb
8 17 15694848 sdb1
две последние строки появляются когда флешка подключена. Но как переписать файл на флешку?

AMDBulldozer 24-01-2014 13:56 2295270

Примерно так:
Код:

grep sdb1 /proc/partitions &>/dev/null
if [[ $? == 0 ]]; then
  mount /dev/sdb1 /media/usbflash # или любая другая точка монтирования
  [ $? == 0 ] && cp LHZ.gz /media/usbflash  || echo Хрен там, не смонтировалась...
  umount /media/usbflash
  echo Это конец. Вытыкай флешку взад
else
  echo 'Тебе, дураку, сказано было флешку воткнуть, а ты что сделал?!!'
fi

(это я написал от балды и не проверял)

ejik_off 24-01-2014 17:37 2295425

Спасибо попробую.


Время: 18:59.

Время: 18:59.
© OSzone.net 2001-