Я всегда был беспокойным учеником, всегда хотел воспользоваться такими возможностями, как ... например, копирование семестровых экзаменов с USB-накопителя учителя или что-то в этом роде. Когда я учился в старшей школе (компьютерная специальность), я хотел запрограммировать "что-то", что могло бы делать следующее:
- Обнаружение подключения USB-устройства к классному компьютеру
- Скопируйте весь контент с этого устройства на свой компьютер
Это позволило бы мне сдать экзамен задолго до этого, учителю нужно было только подключить USB-накопитель (флешку) к компьютеру, и все.
К сожалению, в моем институте на компьютерах была Windows, и… я никогда не учился программировать под эту ОС.
Однако теперь я использую Linux (очевидно, нет? LOL!), и с учетом знаний, которые я смог приобрести за эти годы, теперь ДА! Я уже могу добиться этого с Linux
Другими словами, я написал простой сценарий, который выполняет следующие действия:
1. Создайте папку /home/.USBDRIVES/
2. Каждые 5 секунд он проверяет, подключено ли к компьютеру какое-либо USB-устройство (или CD / DVD).
3. Если он подключен, он создаст папку внутри /home/.USBDRIVES/ с именем USB (например: память-2 ГБ), а также скопирует все файлы .doc, .pdf и т. д. (вот список) в эту только что созданную папку.
4. Если USB не подключен, он просто подождет 5 секунд, чтобы перезапустить проверку, которую я объяснил выше
Вот сценарий и файл, содержащий форматы для копирования:
Чтобы скрипт мог работать без проблем, лучше всего запускать его с правами администратора (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, чтобы он не создавал для меня пустые каталоги.
На самом деле объяснять особо нечего, сценарий очень прост для понимания
Если у кого-то есть сомнения или вопросы, жалобы, идеи или предложения, пожалуйста, сообщите об этом, и я обещаю им всемерно помочь.
Ну, я думал поставить что-то вроде: «этот скрипт предназначен только для образовательных целей, не используйте с вредоносными файлами» …но… какого черта!, используйте это как хотите, пришло время нам, студентам, иметь какое-то преимущество перед учителями, которые нас угнетают
привет