Скрипт для слежки за содержимым USB-устройств и копирования его на ПК

Я всегда был беспокойным учеником, всегда хотел воспользоваться такими возможностями, как ... например, копирование семестровых экзаменов с USB-накопителя учителя или что-то в этом роде. Когда я учился в старшей школе (компьютерная специальность), я хотел запрограммировать "что-то", что могло бы делать следующее:

  1. Обнаружение подключения USB-устройства к классному компьютеру
  2. Скопируйте весь контент с этого устройства на свой компьютер

Это позволило бы мне сдать экзамен задолго до этого, учителю нужно было только подключить USB-накопитель (флешку) к компьютеру, и все.

К сожалению, в моем институте на компьютерах была Windows, и… я никогда не учился программировать под эту ОС.

Однако теперь я использую Linux (очевидно, не? LOL!), И, зная, что за эти годы я смог приобрести, теперь ДА! Я уже могу добиться этого с Linux 😀

Другими словами, я написал простой сценарий, который выполняет следующие действия:

1. Создайте папку /home/.USBDRIVES/
2. Каждые 5 секунд он проверяет, подключено ли к компьютеру какое-либо USB-устройство (или CD / DVD).
3. Если он подключен, он создаст папку внутри /home/.USBDRIVES/ с именем USB (например: память-2 ГБ), а также скопирует все файлы .doc, .pdf и т. д. (вот список) в эту только что созданную папку.
4. В случае, если USB не подключен, он просто подождет 5 секунд, чтобы снова запустить проверку, которую я объяснил выше 😀

Вот сценарий и файл, содержащий форматы для копирования:

Загрузите USB-Spy.zip
Скрипт должен выполняться от имени пользователя root, чтобы его работа не была ограничена. Здесь я объясняю, как этого добиться

Чтобы скрипт мог работать без проблем, лучше всего запускать его с правами администратора (root), так как очевидно, что его нужно запускать вместе с компьютером, таким образом мы убедимся, что при перезагрузке компьютера или выключено, когда я снова запускаю скрипт, он будет там работать, готовый извлечь с любого USB то, что мы хотим 😉

Давайте откроем терминал ... однажды откроем ...

1. Предположим, у нас есть оба файла в / opt / (/opt/usb-spy.sh y /opt/usb-spy.files), мы должны дать ему привилегии выполнения:

sudo chmod +x /opt/usb-spy.sh

2. Открываем файл /etc/rc.local :

sudo nano /etc/rc.local

3. В нем мы пишем над последней строкой (выйти из 0) следующий:

/opt/usb-spy.sh &

4. Теперь нажимаем [Ctrl] + [X] для сохранения и выхода из файла, нажимаем [S] или [Y] (в зависимости от языка системы), а затем [Enter]. Этого будет достаточно для сохранения внесенных нами изменений.

И вуаля, этого будет достаточно, чтобы скрипт запустился с правами root при включении компьютера.

Важно убедиться, что файл usb-spy.files находится в том же каталоге, что и usb-spy.sh 😉

Теперь ... я немного объясню внутреннюю работу скрипта, так как я знаю, что здесь много любителей Bash.

Q: Как сценарий узнает, что подключено USB-устройство?
О: В файле / etc / mtab нашей системы находятся устройства или разделы, которые смонтированы в нашей системе. По строке 23 скрипта известно, подключен USB или нет (превращение кота в mtab и grep media)
В: Да, но Как скрипт узнает, возвращают ли нам cat и grep какие-либо данные или нет?
A: Через если, то, еще цикл который начинается со строки 24.
Q: Как заставить его копировать только файлы с нужными расширениями? (.doc, .pdf и т. д.)
A: Используя rsync с различными параметрами, это находится в строке 34. Проще говоря, с помощью rsync я копирую только файлы, соответствующие фильтру usb-spy.files, каждая строка является фильтром, так сказать. Я также передаю параметр --prune-empty-dirs в rsync, чтобы он не создавал для меня пустые каталоги.
Кстати кое-что важный. Если подключено USB-устройство на 8 ГБ (например), все работает правильно, но я заметил, что если подключено устройство с гораздо большей емкостью, например 500 ГБ или 1 ТБ, процесс поиска файлов .doc и т. Д. Для их копирования на компьютер занял время давно, поэтому я поставил лимит ГБ. То есть в строке 31 я заявляю, что если размер USB-устройства меньше 16 ГБ, тогда найдите файлы и скопируйте их, а если он больше 16 ГБ, ничего не делать. Если вы хотите увеличить эти 16 ГБ на 32 ГБ, просто увеличьте это число из строки 31

Объяснять особо нечего, сценарий действительно прост для понимания :)

Если у кого-то есть сомнения или вопросы, жалобы, идеи или предложения, пожалуйста, сообщите об этом, и я обещаю им всемерно помочь.

Ну, я думал поставить что-то вроде: «этот скрипт предназначен только для образовательных целей, не используйте с вредоносными файлами»… Но… какого черта! Используйте его по своему усмотрению, пора дать ученикам какое-то преимущество перед учителями, которые нас угнетают 😀

привет

Вы все еще можете внести несколько улучшений в сценарий, но я думаю, это хорошее начало, если кто-то почувствует мотивацию внести свой вклад в это «благородное» дело, это будет приятно 😀

Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

92 комментариев, оставьте свой

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   Elav сказал

    Читер¬¬

    XDDDD

    1.    КЗКГ ^ Гаара сказал

      Неее, совсем нет ... если вы точно думали в какой-то момент сделать что-то подобное ... ХАХАХА.

      1.    Иван Молина сказал

        Ты спас меня от поп-викторины 😀… Теперь твоя «КЗКГ ^ Гаара» Ты мой бог… Слава Тебе!

    2.    Факундо сказал

      Здравствуйте, очень хороший скрипт, но в мега файл уже не существует, можете прислать мне на почту, пожалуйста

  2.   Оскар сказал

    Linux составляет 1%, и вы говорите, что никогда не учились программировать для Windows, поэтому обучение предназначено для системы Linux, мой вопрос: какова возможность найти учителя, который использует Linux для проведения обучения?

    1.    КЗКГ ^ Гаара сказал

      Этот сценарий или трюк «реализован» на компьютере, который не обязательно должен быть личным или собственным профессором, достаточно, чтобы это был любой компьютер из университета или колледжа, тогда можно было бы достичь только X или Y причины, по которой профессор подключается ваш USB на этом компьютере.

      Да, это для Linux, но многие университеты используют Linux в качестве системы в компьютерных лабораториях, а также загрузку с LiveCD и не обязательно установку Linux на ПК 🙂

      Что касается 1%, я рекомендую вам прочитать этот пост: https://blog.desdelinux.net/debunking-the-1-percent-myth-traducido-al-espanol/

    2.    Hyuuga_Neji сказал

      Возможность падения гигантского метеорита на Атлантический океан примерно через 30 минут.

  3.   Джош сказал

    Смотрится интересно, надо будет попробовать.
    спасибо

    1.    КЗКГ ^ Гаара сказал

      Утилита в нем не самая лучшая, но скрипт как таковой интересен ... потому что из него вы можете узнать несколько советов, например, как узнать подключенный USB, размер разделов и т. Д. 🙂

  4.   cr0t0 сказал

    Оригинальная и очень хорошо объясненная статья KZKG ^ Gaara. Ура!

    1.    КЗКГ ^ Гаара сказал

      Благодарю вас!

  5.   Оскар сказал

    Какая наглость !!!, и вы осмелились написать это в блоге OO, я не знаю, что и думать, неужели кто-то взломал Гаару, которому он не очень нравится?

    1.    КЗКГ ^ Гаара сказал

      наглость? Почему?
      Хотя цель или мотив сценария может быть не столь серьезным, как остальные мои статьи, я думаю, что сценарий, его строки и логика программирования действительно могут внести большой вклад.

      Вы можете воспользоваться несколькими преимуществами этого скрипта:
      1. Как узнать размер раздела и что это переменная.
      2. Как проверить, подключен ли USB, и извлечь его путь и имя.
      3. Циклы if-then-else и while.

      В любом случае, я не думаю, что это совершенно бесполезно или что-то в этом роде.

      1.    Оскар сказал

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

        1.    Блэр Паскаль сказал

          oO какой отличный блог, хорошие статьи, хорошие читатели, пользователи извиняются ... это рай, лол без троллей.

          1.    КЗКГ ^ Гаара сказал

            спасибо ^ - ^
            Мы гордимся тем, чего достигли до сих пор, это сообщество действительно гордится ... здорово быть частью всего этого 😀

        2.    КЗКГ ^ Гаара сказал

          Нет, нет, я совсем не беспокоился xD
          И да, хе-хе, это была моя ошибка, неверно истолковавшая ваш комментарий. Хе-хе-хе, извините за это 😉

          Ничего такого, что извинения исходят от меня сейчас, мне придется умыться, чтобы увидеть, закончу ли я просыпаться, что ... судя по тому, что я вижу, я все еще не на 100% ХАХАХА.

          Привет друг

        3.    Оскар сказал

          Очень хороший человек xD

  6.   Неомито сказал

    Я бы хотел, чтобы на моих студенческих компьютерах был установлен Linux muhahahjaja.

  7.   GGGG1234 сказал

    Хорошая статья!
    Но тем, кто захочет подражать этому в Windows, будет проще, потому что там, где у вас нет root-доступа на машине, которую вы хотите использовать, вы не можете оставить ее «навсегда». С Windows этого не происходит 😉

  8.   Блэр Паскаль сказал

    Очень хорошо, хе-хе.

  9.   Hyuuga_Neji сказал

    Идея хорошая, у нее есть только слабость в том, что нужно использовать привилегии Root

    1.    КЗКГ ^ Гаара сказал

      Ну, вам действительно не нужно быть root как таковым ... если вы объявите сценарию, что папка НЕ ​​будет /home/.USBDRIVES, как я ее выразил, и он скажет, например: /home/usuario/.USBDRIVES ... затем выполните скрипта с "пользователем" будет достаточно 😀

  10.   Эмилио сказал

    Это хорошая идея, но я думаю, вы бы сэкономили, изменив rc.local и запустив его каждую минуту с помощью crontab, и, таким образом, вы избежите проблемы запуска его как root, а остальное, с другой стороны, даже если это не сильно влияет, вы бесполезно потребляете память компьютера каждые 5 секунд проверять, есть ли usb, даже если это не так. Ну это моя точка зрения

    1.    КЗКГ ^ Гаара сказал

      Я имею в виду, делать проверку каждую минуту, верно? Я не сделал этого, потому что ... что делать, если USB подключается и отключается менее чем за 1 минуту? 😀

      Я предпочел делать это каждые 5 секунд, чтобы действительно «захватить» все USB

      Если я вас неправильно понял, поправьте меня, пожалуйста 🙂

      Привет и добро пожаловать.

      1.    Эмилио сказал

        Да, проверяйте каждую минуту через cron, но хорошо, что у каждого есть свой способ увидеть проблему, не более, чем просмотр кода, было бы не лучше проверить, существует ли уже папка /home/.USBDRIVES, прежде чем создавать ее , это предложение не более

        привет

        1.    КЗКГ ^ Гаара сказал

          Да, тоже, это деталь, которую я заметил, но ... мне было лень решать ее LOL!

          Точно так же я мог бы поместить журнал, в котором отображаются скопированные файлы (отдельный журнал для каждого устройства), возможно, даже отправить этот журнал по электронной почте (используя какой-либо метод отправки электронной почты с помощью терминала из тех, которые я разместил здесь, на сайте) ... но, как я уже говорил, это делает меня немного ленивым ^ - ^ U

  11.   Павлоко сказал

    Хахаха отлично.

  12.   гексборг сказал

    АГА! Значит, ваше программное обеспечение можно использовать во зло. СМЕШНО!!! 🙂

    Уловка прекрасна, но ... что, если вы хотите отключить USB до того, как скрипт завершит копирование его содержимого? В этом случае он будет жаловаться, что он используется, и будет замечен, что что-то не так. 🙂

    1.    КЗКГ ^ Гаара сказал

      Фактически, система не позволит размонтировать USB, потому что «что-то» будет его использовать 😉

      1.    гексборг сказал

        Точно! И тогда профессор Оскара думает, что нашел Linux-вирус. СМЕШНО!! 🙂

  13.   Оскар сказал

    Однажды вы напомнили мне, что я делал нечто подобное (на моем Uni, если у нас были linux / windows), но я сделал программу на C, которая генерировала тысячи папок. Я приделал USB парню, который подключил его. Директор вычислительного центра был поражен! Думал, что нашел вирус в linuxx muajajajaja ... ааа .. какие были времена =)

    1.    Мигель сказал

      а в чем разница с вирусом?

      1.    Оскар сказал

        Что я удаленно подключился к его USB и запустил программу 😛

        1.    Мигель сказал

          хахахаха, так это был взлом XD

    2.    КЗКГ ^ Гаара сказал

      ????
      хе-хе-хе-хе, значит, вы нашли вирус в Linux? … СМЕШНО!!

  14.   Семпромы сказал

    Это просто не работает для меня xD, если я попытаюсь запустить его с терминала, он скажет мне следующее: ./usb-spy.sh: строка 31: [: -lt: ожидается унарный оператор
    Кажется, что-то не так с этой строкой: if [$ USBSIZE -lt 15664800]; тогда
    Но я не знаю, что это, потому что он также не создает каталог .USB.

    Если это удастся решить, я найду полезный сценарий.

    1.    гексборг сказал

      Попробуйте заменить df на / bin / df и обязательно запускайте его как root.

      1.    Семпромы сказал

        Хорошо, теперь, если он создает папку .USB внутри домашнего каталога, но продолжает сообщать мне через терминал, что: «./usb-spy.sh: строка 31: [: -lt: ожидается унарный оператор», и он не копирует ничего, в этой строке должен быть какой-то конфликт, я ценю помощь, если кто-то ее видит.
        Большое спасибо.

        1.    гексборг сказал

          Можете ли вы предоставить нам содержимое вашего файла / etc / mtab при подключении USB?

          1.    Семпромы сказал

            Конечно, вот оно:

            / dev / sda12 / ext4 rw, ошибки = remount-ro 0 0
            proc / proc proc rw, noexec, nosuid, nodev 0 0
            sysfs / sys sysfs rw, noexec, nosuid, nodev 0 0
            нет / sys / fs / предохранитель / соединения fusectl rw 0 0
            нет / sys / kernel / debug debugfs rw 0 0
            нет / sys / kernel / security securityfs rw 0 0
            udev / dev devtmpfs rw, режим = 0755 0 0
            devpts / dev / pts devpts rw, noexec, nosuid, gid = 5, режим = 0620 0 0
            tmpfs / запустить tmpfs rw, noexec, nosuid, size = 10%, mode = 0755 0 0
            нет / запустить / заблокировать tmpfs rw, noexec, nosuid, nodev, size = 5242880 0 0
            нет / запустить / shm tmpfs rw, nosuid, nodev 0 0
            binfmt_misc / proc / sys / fs / binfmt_misc binfmt_misc rw, noexec, nosuid, nodev 0 0
            / dev / sdb1 / media / DOCU403 vfat rw, nosuid, nodev, uid = 1000, gid = 1000, shortname = m $

            Последние строки - это строки подключенного USB / dev / sdb1.

          2.    гексборг сказал

            Посмотрим, получим ли мы это. 🙂

            Дайте нам вывод команды df. И попробуйте добавить строку:

            echo $ USBSIZE

            Прямо перед if, это дает проблему и расскажет нам, что выйдет при запуске скрипта. Должно получиться так:

            USBSIZE = `/ bin / df | grep $ USBDEV | awk {'напечатать $ 2'} `
            echo $ USBSIZE
            если [$ USBSIZE -lt 15664800]; тогда

            И на всякий случай также расскажите нам, каков результат выполнения команды which df.

            1.    Семпромы сказал

              Хорошо, по частям команда df возвращает мне это:

              Файловая система Используется 1K блоков Доступно Использование% Установлено на
              / dev / sda12 54082300 45246956 6125892 89% /
              udev 2004028 4 2004024 1% / dev
              tmpfs 805768 1180 804588 1% / запуск
              нет 5120 0 5120 0% / запуск / блокировка
              нет 2014420 92 2014328 1 XNUMX XNUMX% / погон / пог.м
              / dev / sdb1 1023200 322256 700944 32% / media / DOCU 3

              Команда, которую мне возвращает df: / bin / df

              Затем я поставил echo $ USBSIZE, и результат тот же, он не печатает ничего нового, но ошибка из прошлого, самое смешное, что это происходит с USB, который я тестирую, если я поставлю внешний жесткий диск на 500 ГБ Да, он возвращает размер диска на экране, но 500 превышает 16 из if, поэтому с жестким диском он ничего не делает.

              Но с USB он ничего не делает, кроме отображения ошибки: ./usb-spy.sh: line 34: [: -lt: ожидается унарный оператор
              Как будто он не может показать размер USB, но с помощью команды df я получаю его размер.

              Спасибо за помощь, посмотрим, сможем ли мы ее получить!


            2.    Семпромы сказал

              На всякий случай оставляю здесь скриншот: http://i48.tinypic.com/j5dvn5.jpg


          3.    гексборг сказал

            Я вижу, что в mtab он отображается как смонтированный «/ media / DOCU403», а в df - «/ media / DOCU 3». Это заставляет grep не находить его и не возвращает размер. Попробуйте изменить первые строки for так, чтобы они выглядели так:

            для USBD в `cat / etc / mtab | grep media | awk '{print $ 1}' '';
            do
            USBDEV = `cat / etc / mtab | grep $ USBD | awk '{print $ 2}' ''
            USBSIZE = `/ bin / df | grep $ USBD | awk {'напечатать $ 2'} `

            Изменения состоят в изменении имени переменной for на USBD, изменении $ 2 в конце строки for на $ 1, вставке строки, которая начинается с USBDEV сразу после do, и изменении USBDEV на USBD в строке, которая начинается с USBSIZE… Надеюсь, я не стал бездельничать. 🙂

            Идея состоит в том, чтобы выполнить for по имени устройства, а не по точке монтирования.

            1.    КЗКГ ^ Гаара сказал

              Проблема заключалась в том, что в mtab, когда на устройстве есть пробелы ... он помещает в строку какие-то "странные" символы, а именно вместо пробела.

              Ничего, так просто решить, как изменить способ обозначения $ USBDEV, в строке 28 измените его и изложите так:
              for USBDEV in `df | grep media | awk -F / {'print $5'}` ;

              ????


          4.    Атейус сказал

            Дай мне посмотреть, смогу ли я тебе помочь ...

            Унарный оператор показывает это, потому что он не определяет размер диска, это происходит потому, что он не проверяет его, это происходит потому, что он вызывается

            ДОКУ 3

            и принимает его как два значения, если бы это был DOCU, это не открыло бы проблему

            Может это сработает для тебя

            http://www.itimetux.com/2012/11/manejar-archivos-o-carpetas-con-espacios-en-unix.html

            Привет 🙂

            1.    Семпромы сказал

              На самом деле, это проблема, потому что я только что пробовал с другим USB, у которого есть имя со словом без пробелов, пример «классов», и сценарий работает без проблем, поэтому он распознал жесткий диск, а не воспоминания, но теперь дело в Зная, как я помещаю кавычки в код скрипта, должен ли я помещать их в «$ USBNAME»?

              Большое спасибо Атеюсу и Хексборгу за помощь, почти готово.


          5.    КЗКГ ^ Гаара сказал

            на самом деле Семпромы это очень просто исправить 😉
            Строка 28 ... измените его на это:
            for USBDEV in `df | grep media | awk -F / {'print $5'}` ;

            Я только что провел тестирование с этим изменением, и оно отлично работает с устройствами, в метке / названии которых есть пробел :)

            Сейчас я внесу изменения в скрипт для загрузки.

          6.    гексборг сказал

            Очень хорошо. Так что исправить легко. 🙂

  15.   AurosZx сказал

    Оооо, очень гениально 😀 Приму на заметку, если мне понадобится ...

  16.   Семпромы сказал

    KZKG ^ Gaara, с такой компоновкой он работает отлично, теперь, если я скопирую USB с пробелом в имени, большое спасибо всем за помощь, я постараюсь посмотреть, смогу ли я заставить его работать с загрузкой системы и таким образом Проверяйте каждый цикл, подключен ли какой-либо USB.

    В итоге мы добились этого xD.

    1.    КЗКГ ^ Гаара сказал

      ^ - ^ ... приятно хе-хе.
      Проблема заключалась в том, что я использовал mtab для распознавания USB, я мог бы просто использовать df ... Я использовал mtab, потому что подумал, что было бы интересно объяснить им этот файл, что они его знают, но я не ожидал, что эта ошибка произойдет с устройствами с пробелами lol.

      Любые вопросы или проблемы, которые вы оставите, сказано, почти все здесь любят помогать xD

      привет

    2.    гексборг сказал

      Конечно. Мы линуксеры. Мы всегда это понимаем. XD.

  17.   Еретик сказал

    Установите на ПК учителя демон, который генерирует запись всех файлов .doc, .docx, .odt, .pdf и отправляет их вам по почте. Помимо периодического сканирования ПК в поисках изменений, новых файлов или удалений в указанном реестре, а также любых новостей, вы также будете отправлять вам измененный или новый файл по почте.

  18.   Еретик сказал

    Точно так же я думаю, что выполнение этого сценария (И КАК ROOT !!!!) - это не просто грабеж, а самоубийство. Вы делаете жизнь и вещи на 700% проще для всех, кто хочет вставить файл на ваш компьютер с правами root и всем остальным. Помните, что в Linux нет расширений и что .doc в Linux может быть таким же, как текст, видео или, что еще хуже, скрипт (на этот раз с очень плохими намерениями).

    1.    КЗКГ ^ Гаара сказал

      Запускать его как root не обязательно, просто определите папку, в которую будет помещен контент, где у запущенного пользователя есть права на запись (например, их собственный дом), и все 🙂

      На опасных файлах ... ну, вы можете добавить несколько строк, которые будут chmod -x для всех файлов, таким образом потеряв свойство выполнения.

      1.    Семпромы сказал

        Я добавил эти строки в начале, чтобы удалить папку .USBDRIVES, если она уже была создана:

        если [-s $ PLACE]
        затем rm -r $ PLACE
        fi

        Таким образом, он не выдаст ошибку «каталог уже существует», то есть, если вы должны быть осторожны, чтобы в папке .USBDRIVES не было ничего, что мы не хотим удалять, потому что он удалит его и поместит на его место другое.

  19.   Дэниел сказал

    Чтобы добавить новые форматы файлов, просто напишите их в usb-spy? например .jpg .mp3 и т. д.

    1.    КЗКГ ^ Гаара сказал

      Чтобы добавить новые типы файлов, вы помещаете их в usb-spy.files.
      Посмотрите содержимое файла, и вы увидите, как их добавить, это довольно просто 😉

  20.   Вильмер Боливар сказал

    Если мы находимся в одной сети и есть машина учителя, интересно было бы сделать отображение сети, у нас может быть ssh на машинах и таким образом распространять код на лабораторных машинах или даже на машине учителя ... . Это дает мне ооочень много идей: $

  21.   xiler сказал

    Здравствуйте, я поздравляю вас с публикацией и всеми вашими вкладами, но у меня есть вопрос, чтобы посмотреть, сможет ли кто-нибудь решить эту проблему:

    Я тестировал ваш сценарий на компьютере с ubuntu 12.04LTS (с Unity), и он работал отлично, но, как я увидел, этот сценарий перестал выполняться после первого запуска, потому что папка .USBDRIVES уже была создана, Я решил напрямую использовать этот другой сценарий вашего авторства, который был размещен в другой части этого форума

    здесь я копирую сценарий, чтобы вы могли найти себя

    #! / Bin / Баш
    #
    # - * - КОДИРОВАНИЕ: UTF-8 - * -
    # Эта программа является бесплатной. Вы можете распространять его и / или
    # изменить его в соответствии с условиями Стандартной общественной лицензии
    GNU #, опубликованная Free Software Foundation,
    # либо версия 2 указанной Лицензии, либо (в зависимости от вашего
    # выбор) любой более поздней версии.
    #
    # Если вы внесете какие-либо изменения в это приложение,
    # всегда следует упоминать первоначального автора того же самого.
    #
    # Copyleft 2012, FromLinux.net {Город Гавана, Куба}.
    # Автор: KZKG ^ Gaara

    WHILE = 0

    а [$ CONTROL = 0]; делать
    кот / etc / mtab | grep media >> / dev / null
    если [$? -ne 0]; тогда
    СЧЕТЧИК = 0
    еще
    СЧЕТЧИК = 1
    : $ {USBDEV: = `cat / etc / mtab | grep media | awk '{print $ 2}' `/»}
    cp $ USBDEV / * / главная /
    fi
    спать 5
    сделанный

    выйти из 0

    В ubuntu12.04 lts unity тема следующая: последний скрипт работает нормально и работает, но когда я понижаю версию того же компьютера по причине «x» и пытаюсь заставить его работать в ubuntu 10.10 нет, я могу заставить его работать
    С одной стороны, он выдает ошибку и не читает флеш-накопители с составным именем, например: DATA-G, и не копирует файлы с составным именем. Помимо этой проблемы, у меня есть проблема, заключающаяся в том, что сценарий выполняется только при однократном перезапуске компьютера.

    Возникает вопрос: как я могу заставить этот скрипт копировать мне перьевые диски и файлы с составными именами?
    и если я использую crontab, или я могу запланировать его работу в определенное время

    Еще одна деталь, в Ubuntu 10.10, поскольку он использует Gnome, я хотел бы добавить некоторые ограничения, которые следует учитывать, при предоставлении привилегий выполнения скрипту он должен находиться в /etc/init.d, а не в / etc /
    (Учтите, что вы должны вставить его туда, приходя с терминала с помощью sudo nautilus)

    С другой стороны, другое измерение будет заключаться в том, что после вставки его туда, чтобы увидеть, можно ли его выполнить, это должно быть сделано в другом терминале.

    sudo su (чтобы быть root)
    пароль,

    ls

    cd / etc / init.d

    ls -l

    а там прыгаем, бежит он или нет

    затем в том же терминале или в другом терминале, в другое время находясь как root и находясь в etc / init.d (то есть до шага cd / etc / init.d), как и в предыдущем терминале, мы продолжаем следующим образом, чтобы дать ему разрешения казнь

    sudo chmod + x script.sh

    update -rc.d script.sh по умолчанию 80

    перезагружать

    Я повторяю, что он автоматически запускается в ubuntu 10.10, если это другая версия, такая как 12.04, вы должны делать то, что говорит KZKG ^ Gaara

    И последний вопрос: как мне скопировать содержимое (до 3 подпапок на флешке) в дом или в скрытую домашнюю папку или нет, предположим, что это .USBDRIVES
    в коде я бы не сказал

    cp -r /media/*/*/*/home/.USBDRIVES/*

    Короче, чтобы получить то, что я хочу, как должен оставаться сценарий?
    Потому что я уже пытался изменить строку, которую они изменили на usb-spy sh, но на ту другую, которая записывает непосредственно в доме и выдает ошибку в измененной строке.? С уважением . Спасибо

  22.   Какаши сказал

    Я не могу скачать второй сценарий

  23.   металл сказал

    Очень хорошо. 😉

  24.   Камалеон сказал

    И если я не сделаю то, что вы сделали, что произойдет? Не запускается или просто запускается но без рута? Если на компьютерах есть система, которая, как мы говорим, восстанавливает всю внутреннюю конфигурацию компьютера при выключении, будет ли она работать? Спасибо.

    1.    КЗКГ ^ Гаара сказал

      Если в системе есть что-то, что по умолчанию находится в папке / home /, вы должны изменить сценарий, где он говорит / home / изменить его на / opt / или другую папку, на которую это не влияет.

  25.   Гамби сказал

    Я думаю, что для улучшения скрипта и предотвращения того, чтобы вторжение в флешку было замечено, оптимальным было бы установить приоритет по типу, размеру файла. Например, оставьте напоследок большие файлы размером 100 мегабайт и более. Или сначала скопируйте файлы doc, docx, txt, pdf, xml, ... и т. Д. И т. Д. И оставьте файлы avi, mp4, mkv напоследок ...

  26.   Лукас сказал

    Здравствуйте, идея хорошая. Я хотел задать два вопроса:
    - А можно наоборот? сделать скрипт для Penderiver, который подключается к любой машине и извлекает файлы.
    - работает на ОС Windows?

    1.    КЗКГ ^ Гаара сказал

      Привет,

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

      И нет, этот скрипт не работает под Windows 🙂

      1.    LUCAS сказал

        Хорошо, спасибо, что ответили мне, я выясню, как это сделать

  27.   Хосе Дамиан Базага Руис сказал

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

  28.   хосе сказал

    Отличный вклад, хотя утилита, которую я дам ей, не совсем то, для чего вы ее подняли, если я использую ее для резервного копирования файлов группы пользователей, нарушение, которое у меня есть… хе-хе-хе….

  29.   окутывать сказал

    когда я пытаюсь запустить, он дает мне эту строку ошибки 31: [: слишком много аргументов
    удалите эту строку, чтобы увидеть, работает ли она. и оказывается, что именно линия ограничивает размер устройств.
    при удалении копирует то, что есть в моих смонтированных разделах 🙁

  30.   Валенте сказал

    Привет, я новенький и знаю, что горшок старый, но он мне очень понравился, ваш сценарий очень познавательный

    Спасибо, что поделились этим и подробно объяснили ...

    Приветствие

  31.   Долтрокс сказал

    Друг, ты меня спас, мне просто нужно было отвлечь учителя и вставить usb в свой ноутбук, а затем хахаха сдал экзамен и заметки со всех хехехе

    1.    Oetam222 сказал

      Не могли бы вы передать мне сценарий, ссылка не работает

    2.    Oetam222 сказал

      Вы можете передать мне сценарий, ссылка на который не работает

  32.   Worm2D2 сказал

    kzkggaara, не могли бы вы повторно загрузить файлы? ссылки не работают: /, большое спасибо

  33.   Бастиан сказал

    Не могли бы вы выложить ссылки?

  34.   Necr0 сказал

    слышит! дядя! у вас есть упавшие похвалы, вы можете возвысить их снова!
    ХОРОШО! : v

  35.   Necr0 сказал

    ну, я делаю это снова, потому что не знаю, было ли загружено то, что я хотел сказать….

    Хорошо, что у вас есть ссылки, вы можете их загрузить!

  36.   Рлорау сказал

    Ссылки не работают !!!

  37.   Developer24 сказал

    Отправьте ссылки повторно, пожалуйста, @usemoslinux Я изучаю эту тему, спасибо!

  38.   анонимный сказал

    Скрипт можно скачать отсюда. Я думаю это то же самое

    https://mega.nz/#!yQR1BQTb!FoYoopZ11WSstQaqX1flxhm1t4jCKOI9jj8VIxIBrxk

  39.   Хуан сказал

    Ну тогда….

    Я считаю, со своей скромной точки зрения, что это отличная статья, и хорошо, что если есть люди, которые говорят, что вы читер, то я думаю, что это соответствует цели, для которой вы используете программу.
    Мне лично больше нравилось знание языка программирования для Linux, так как я работал только с java, спасибо, дружище, вы пробудили у меня интерес узнать больше о языке для Linux.

    Я благодарю тебя.

  40.   Hecorat сказал

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

  41.   ЛУИС ДЖЕРАРДО ПОЛАНКО ВЕРА сказал

    Работает только с устройствами с операционными системами linux?

  42.   Probando сказал

    Поднимите, пожалуйста!

  43.   Газлен сказал

    Здравствуйте, у меня нет linux и в моей школе используют Windows, я использовал приложение из usb capture и копирую только 5 файлов из памяти учителя, подозреваю, что usb имеет защиту, потому что то же самое произошло дважды, будет другой способ вычесть полную информацию из этого usb?

  44.   Zaraki сказал

    Пойдите, если вы говорите, что код будет простым, потому что очень интересно увидеть, как работают методы, чтобы узнать, подключен ли USB-накопитель или размер раздела. Жаль, что они удалили скрипт mega.nz, не могли бы вы загрузить его снова?

    Приветствую и отличная работа, простая, но функциональная даже для автоматических копий с USB !!!

  45.   Перерывы сказал

    Хорошо!
    Я только что вошел в ваш блог, и мне это действительно интересно. Когда вы даете .zip-файл, который перенаправляет вас на мега, это означает, что файл больше не доступен.
    Мне было интересно, можете ли вы прислать мне те файлы, которые предполагается загрузить.
    Большое спасибо и привет!

  46.   Альфредо Перейра сказал

    Технологии имеют привычку уменьшаться в размерах с годами. И это в невероятной степени произошло с твердотельными накопителями (SSD). Теперь вы можете получить их такого же размера, как самые быстрые USB-флешки.

    https://clongeek.com/las-unidades-usb-3-0-mas-rapidas/