Aš visada buvau neramus studentas, visada norėjau pasinaudoti tokiomis galimybėmis, kaip ... pavyzdžiui, semestro egzaminų kopijavimas iš dėstytojo USB atmintinės ar pan. Kai mokiausi vidurinėje mokykloje (kompiuterių specialybėje), norėjau užprogramuoti „kažką“, kuris padėtų:
- Aptikti, kada USB įrenginys prijungtas prie klasės kompiuterio
- Nukopijuokite visą turinį iš šio įrenginio į savo kompiuterį
Tai leistų egzaminą turėti daug anksčiau, tereikės, kad mokytojas prijungtų savo USB atmintį („pendrive“) prie kompiuterio ir tiek.
Deja, mano institute kompiuteriuose buvo „Windows“ ir ... aš niekada ir niekada neišmokau programuoti šiai OS.
Tačiau dabar aš naudoju Linux (akivaizdu, kad ne? LOL!), ir su žiniomis, kurias galėjau įgyti per šiuos metus, dabar TAIP! Aš jau galiu tai pasiekti su Linux
Tai yra, aš užprogramavau paprastą scenarijų, kuris atliktų šiuos veiksmus:
1. Sukurkite aplanką /home/.USBDRIVES/
2. Kas 5 sekundes tikrinama, ar prie kompiuterio yra prijungtas USB įrenginys (arba CD / DVD).
3. Jei vienas bus prijungtas, jis sukurs aplanką /home/.USBDRIVES/ su USB pavadinimu (pavyzdžiui: atmintis-2gb), taip pat nukopijuos visus failus .doc, .pdf ir kt (čia sąrašas) į šį ką tik sukurtą aplanką.
4. Jei USB nėra prijungtas, jis tiesiog palauks 5 sekundes, kad iš naujo paleistų patikrinimą, kurį paaiškinau aukščiau
Čia yra scenarijus ir failas, kuriame yra formatai, kuriuos reikia nukopijuoti:
Kad scenarijus veiktų be problemų, geriausia jį paleisti su administratoriaus teisėmis (root), nes akivaizdu, kad jį reikia paleisti šalia kompiuterio, tokiu būdu užtikriname, kad jei kompiuteris bus paleistas iš naujo arba išjungti, kai vėl paleisite scenarijų, jis veiks ir bus paruoštas iš bet kurio USB išgauti tai, ko norime
Atidarykime terminalą ... kai tik atsidarys ...
1. Tarkime, kad turime abu failus / opt / (/opt/usb-spy.sh y /opt/usb-spy.files), turime suteikti jai vykdymo teises:
sudo chmod +x /opt/usb-spy.sh
2. Mes atidarome failą /etc/rc.local :
sudo nano /etc/rc.local
3. Jame rašome virš paskutinės eilutės (0 išėjimas) Kitas:
/opt/usb-spy.sh &
4. Dabar paspauskite [Ctrl] + [X], kad išsaugotumėte ir išeitumėte iš failo, paspauskite [S] arba [Y] (priklausomai nuo sistemos kalbos) ir tada [Enter]. To pakaks, kad mūsų atlikti pakeitimai būtų išsaugoti.
O voila, to pakaks, kad scenarijus prasidėtų kaip root, kai įjungiame kompiuterį.
Svarbu patikrinti, ar failas usb-spy.files yra tame pačiame kataloge kaip usb-spy.sh
Dabar... Aš šiek tiek paaiškinsiu apie vidinį scenarijaus veikimą, nes žinau, kad čia yra daug Bash mylėtojų
Q: Iš kur scenarijus žino, kad prijungtas USB įrenginys? A: Mūsų sistemos faile / etc / mtab yra įrenginiai arba skaidiniai, kurie yra sumontuoti mūsų sistemoje. Per 23 scenarijaus eilutę yra žinoma, ar yra prijungtas USB, ar ne (padaryti katę į mtab ir grep žiniasklaidą)
K: Taip, bet Iš kur scenarijus žino, ar katė ir grepas mums grąžina bet kokius duomenis, ar ne? A: Per a jei tada kita kilpa kuris prasideda 24 eilutėje.
Q: Kaip padaryti, kad jis nukopijuotų tik failus su norimais plėtiniais? (.doc, .pdf ir kt.)
A: Naudojant „rsync“ su įvairiais parametrais, tai yra 34 eilutėje. Paprasčiau paaiškinta, kad naudodamas „rsync“ nukopijuoju tik tuos failus, kurie atitinka „usb-spy.files“ filtrą, kiekviena eilutė yra taip sakant filtras. Aš taip pat perduodu parametrą --prune-empty-dirs rsync, kad man nesudarytų tuščių katalogų.
Iš tikrųjų nėra ką daug paaiškinti, scenarijų suprasti labai paprasta
Jei kam kyla abejonių, klausimų, skundų, idėjų ar pasiūlymų, prašau tai pasakyti ir aš pažadu jiems padėti, kiek galiu.
Na, aš galvojau įdėti kažką panašaus: «šis scenarijus skirtas tik švietimo tikslams, nenaudokite su kenksmingais failais» …bet...kas po velnių!, naudokite kam norite, laikas mums, studentams, turėti kažkokį pranašumą prieš mus slegiančius mokytojus
saludos