Tập lệnh theo dõi nội dung của thiết bị USB và sao chép nó vào PC

Tôi luôn là một học sinh bồn chồn, luôn muốn tận dụng những cơ hội như ... sao chép đề thi học kỳ từ chiếc USB của giáo viên hay đại loại như vậy. Khi tôi còn học trung học (chuyên ngành máy tính), tôi muốn lập trình "một cái gì đó" sẽ làm như sau:

  1. Phát hiện khi thiết bị USB được kết nối với máy tính trong lớp học
  2. Sao chép tất cả nội dung từ thiết bị đó vào máy tính của bạn

Điều này cho phép tôi có bài kiểm tra từ rất lâu trước đó, chỉ cần giáo viên kết nối bộ nhớ USB (ổ đĩa) của mình với máy tính là xong.

Thật không may trong viện của tôi máy tính có Windows và… tôi chưa bao giờ và chưa bao giờ học lập trình cho hệ điều hành này.

Tuy nhiên bây giờ tôi sử dụng Linux (rõ ràng là không? LOL!), Và với kiến ​​thức mà tôi đã có trong suốt những năm qua, bây giờ CÓ! Tôi đã có thể đạt được điều này với Linux 😀

Nói cách khác, tôi đã lập trình một tập lệnh đơn giản thực hiện những việc sau:

1. Tạo thư mục /home/.USBDRIVES/
2. Nó sẽ kiểm tra 5 giây một lần nếu có bất kỳ thiết bị USB (hoặc CD / DVD) nào được kết nối với máy tính.
3. Trong trường hợp một cái được kết nối, nó sẽ tạo một thư mục bên trong /home/.USBDRIVES/ với tên của USB (ví dụ: memory-2gb) và nó cũng sẽ sao chép tất cả các tệp .doc, .pdf, v.v. (đây là danh sách) vào thư mục bạn vừa tạo.
4. Trong trường hợp không có USB được kết nối, chỉ cần đợi 5 giây để bắt đầu kiểm tra như tôi đã giải thích ở trên 😀

Đây là tập lệnh và tệp chứa các định dạng sẽ được sao chép:

Tải xuống USB-Spy.zip
Tập lệnh phải được chạy dưới dạng root để hoạt động của nó không bị giới hạn. Sau đây tôi giải thích cách đạt được điều này

Để tập lệnh có thể hoạt động mà không gặp bất kỳ sự cố nào, tốt nhất là nó được khởi động bằng đặc quyền quản trị (root), vì rõ ràng là nó cần được khởi động cùng với máy tính, bằng cách này, chúng tôi đảm bảo rằng nếu máy tính khởi động lại hoặc tắt, khi tôi bắt đầu lại tập lệnh, nó sẽ hoạt động ở đó, sẵn sàng giải nén từ bất kỳ USB nào mà chúng tôi muốn 😉

Hãy mở một thiết bị đầu cuối ... sau khi mở ...

1. Giả sử chúng ta có cả hai tệp trong / opt / (/opt/usb-spy.sh y /opt/usb-spy.files), chúng tôi phải cấp cho nó các đặc quyền thực thi:

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

2. Chúng tôi mở tệp /etc/rc.local :

sudo nano /etc/rc.local

3. Trong đó, chúng tôi viết ở trên dòng cuối cùng (thoát 0) tiếp theo:

/opt/usb-spy.sh &

4. Bây giờ chúng ta nhấn [Ctrl] + [X] để lưu và thoát khỏi tệp, chúng ta nhấn [S] hoặc [Y] (tùy thuộc vào ngôn ngữ hệ thống) và sau đó [Enter]. Điều này sẽ đủ để lưu những thay đổi chúng tôi đã thực hiện.

Và thì đấy, điều này sẽ đủ để tập lệnh bắt đầu dưới dạng root khi chúng ta bật máy tính.

Điều quan trọng là phải xác minh rằng tệp usb-spy.files nằm trong cùng một thư mục với usb-spy.sh ????

Bây giờ ... tôi sẽ giải thích một chút về hoạt động bên trong của kịch bản, vì tôi biết có rất nhiều người yêu thích Bash ở đây vì

Q: Làm thế nào để script biết rằng một thiết bị USB đã được kết nối?
A: Trong tệp / etc / mtab của hệ thống của chúng tôi là các thiết bị hoặc phân vùng được gắn trên hệ thống của chúng tôi. Qua dòng 23 của script, người ta biết được có USB được kết nối hay không (làm mèo với mtab và grep media)
Q: Có, nhưng Làm thế nào để script biết liệu cat và grep có trả lại bất kỳ dữ liệu nào cho chúng ta hay không?
A: Thông qua một vòng lặp if, then, else bắt đầu trên dòng 24.
Q: Làm thế nào để nó chỉ sao chép các tệp có phần mở rộng mong muốn? (.doc, .pdf, v.v.)
A: Sử dụng rsync với nhiều tham số khác nhau, đây là dòng 34. Giải thích một cách đơn giản, với rsync, tôi chỉ sao chép các tệp phù hợp với bộ lọc usb-spy.files, mỗi dòng là một bộ lọc. Tôi cũng truyền tham số --prune-empty-dirs sang rsync để nó không tạo thư mục trống cho tôi.
Nhân tiện một cái gì đó quan trọng. Nếu một thiết bị USB 8GB (ví dụ) được kết nối, mọi thứ đều hoạt động chính xác, nhưng tôi nhận thấy rằng nếu một thiết bị có dung lượng lớn hơn được kết nối, chẳng hạn như 500GB hoặc 1TB, thì quá trình tìm kiếm tệp .doc, v.v. để sao chép chúng vào máy tính mất nhiều thời gian, vì vậy tôi đã đặt giới hạn GB. Tức là, ở dòng 31, tôi khai báo rằng nếu USB nhỏ hơn 16GB thì bạn hãy tìm các tập tin và sao chép chúng, còn nếu nó lớn hơn 16GB thì không làm gì cả. Nếu bạn muốn tăng 16GB đó lên 32GB, chỉ cần tăng con số đó từ dòng 31

Thực ra không có nhiều thứ để giải thích, kịch bản rất đơn giản để hiểu 🙂

Nếu bất kỳ ai có bất kỳ nghi ngờ hoặc câu hỏi, phàn nàn, ý tưởng hoặc đề xuất xin vui lòng cho họ biết và tôi hứa sẽ giúp họ nhiều nhất có thể.

Chà, tôi đã nghĩ đến việc đặt một cái gì đó như: «tập lệnh này chỉ dành cho mục đích giáo dục, không sử dụng với các tệp có hại»… Nhưng… cái quái gì! Hãy sử dụng nó cho bất cứ điều gì bạn muốn, đã đến lúc học sinh chúng ta có lợi thế nào đó trước những giáo viên áp bức chúng ta 😀

Liên quan

Bạn vẫn có thể thực hiện nhiều cải tiến đối với kịch bản, nhưng tôi nghĩ đây là một khởi đầu tốt, nếu ai đó cảm thấy có động lực để đóng góp cho sự nghiệp "cao cả" này thì đó sẽ là một niềm vui 😀

Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   sống động dijo

    Kẻ lừa đảo ¬¬

    XDDĐD

    1.    KZKG ^ Gaara dijo

      Không hề ... nếu bạn chắc chắn nghĩ đến một lúc nào đó sẽ làm điều gì đó như vậy ... HAHAHA.

      1.    Ivan Molina dijo

        Bạn đã cứu tôi khỏi một bài kiểm tra nhạc pop 😀… Bây giờ «KZKG ^ Gaara» của bạn Bạn là chúa của tôi… Khen ngợi bạn!

    2.    facundo dijo

      Xin chào, script rất hay, nhưng tệp mega không còn tồn tại nữa, bạn có thể gửi nó vào email của tôi, làm ơn

  2.   oscar dijo

    Linux là 1% và bạn nói rằng bạn chưa bao giờ học lập trình cho windows nên việc dạy kèm là dành cho hệ thống linux, câu hỏi của tôi là: khả năng tìm được một giáo viên sử dụng linux để có thể dạy kèm là bao nhiêu?

    1.    KZKG ^ Gaara dijo

      Tập lệnh hoặc thủ thuật này được "thực hiện" trên một máy tính không nhất thiết phải là của cá nhân hoặc của riêng giáo sư, chỉ cần một máy tính từ trường Đại học hoặc Cao đẳng là đủ thì chỉ cần X hoặc Y lý do mà giáo sư kết nối USB của bạn trên máy tính đó.

      Đúng, nó dành cho Linux, nhưng nhiều trường đại học có Linux như một hệ thống trong phòng máy tính, cũng như khởi động bằng LiveCD và không nhất thiết phải cài đặt Linux trên PC 🙂

      Về 1%, tôi khuyên bạn nên đọc bài đăng này: https://blog.desdelinux.net/debunking-the-1-percent-myth-traducido-al-espanol/

    2.    Hyuuga_Neji dijo

      Khả năng một thiên thạch khổng lồ rơi trên Đại Tây Dương trong khoảng 30 phút

  3.   Josh dijo

    Nó có vẻ thú vị, nó sẽ được thử.
    Cảm ơn

    1.    KZKG ^ Gaara dijo

      Tiện ích mà nó có không phải là một điều tuyệt vời, nhưng script như vậy rất thú vị ... bởi vì bạn có thể học một số mẹo từ nó, ví dụ như cách biết USB được kết nối, kích thước của phân vùng, v.v. 🙂

  4.   cr0t0 dijo

    Một bài báo gốc và được giải thích rất tốt KZKG ^ Gaara. Chúc mừng!

    1.    KZKG ^ Gaara dijo

      thanks

  5.   Oscar dijo

    Táo bạo !!!, còn dám viết lên blog OO, không biết nghĩ sao, có phải người không thích anh ấy hack không?

    1.    KZKG ^ Gaara dijo

      trơ tráo? tại sao?
      Mặc dù mục đích hoặc động cơ của kịch bản có thể không nghiêm trọng như những đóng góp còn lại của tôi, nhưng tôi nghĩ rằng kịch bản, lời thoại và logic lập trình của nó có rất nhiều đóng góp.

      Bạn có thể tận dụng một số điều từ tập lệnh này:
      1. Làm thế nào để biết kích thước của một phân vùng và đây là một biến.
      2. Cách kiểm tra xem có USB được kết nối hay không và trích xuất đường dẫn và tên của nó.
      3. vòng lặp if-then-else và while.

      Dù sao, tôi không nghĩ điều này là hoàn toàn vô ích hay gì đó.

      1.    Oscar dijo

        Tôi nghĩ rằng bạn hiểu sai nhận xét của tôi, ý tôi là ở đầu bài viết của bạn,
        "Tôi luôn là một học sinh bồn chồn, luôn muốn tận dụng các cơ hội như ... ví dụ, sao chép bài kiểm tra học kỳ từ ổ đĩa của giáo viên hoặc đại loại như vậy." Nếu những gì tôi nói làm phiền bạn, tôi hy vọng bạn sẽ thứ lỗi cho tôi, đó không phải là ý định của tôi.

        1.    Blaire pascal dijo

          oO thật là một blog xuất sắc, bài viết hay, người đọc hay, người dùng xin lỗi ... đó là thiên đường không có troll.

          1.    KZKG ^ Gaara dijo

            Cảm ơn ^ - ^
            Chúng tôi tự hào về những gì chúng tôi đã đạt được cho đến nay, cộng đồng này thực sự tự hào ... thật tuyệt khi trở thành một phần của tất cả những điều này 😀

        2.    KZKG ^ Gaara dijo

          Không, không, tôi không thực sự bận tâm xD
          Và vâng, đó là lỗi của tôi khi hiểu sai bình luận của bạn hehehe, xin lỗi vì điều đó 😉

          Không có gì mà lời xin lỗi đến từ tôi bây giờ, tôi sẽ phải rửa mặt để xem nếu tôi thức dậy xong rằng ... từ những gì tôi thấy, tôi vẫn không phải là 100% HAHAHA.

          Chào bạn 🙂

        3.    Oscar dijo

          Người rất tốt xD

  6.   neomyth dijo

    Tôi muốn máy tính đại học của mình có Linux muhahahjaja.

  7.   GGGG1234 dijo

    Bài báo hay!
    Nhưng ai muốn bắt chước nó trong Windows sẽ dễ dàng hơn, vì nơi bạn không có quyền root trên máy bạn muốn sử dụng nó, bạn không thể để nó "mãi mãi". Với Windows điều đó không xảy ra 😉

  8.   Blaire pascal dijo

    Tốt lắm hehe.

  9.   Hyuuga_Neji dijo

    Ý tưởng là tốt, nó chỉ có điểm yếu là phải sử dụng đặc quyền Root

    1.    KZKG ^ Gaara dijo

      Chà, bạn không thực sự cần phải root như vậy ... nếu bạn khai báo với script rằng thư mục sẽ KHÔNG phải là /home/.USBDRIVES như tôi đã đặt, và nó nói ví dụ: / home / usuario /. USBDRIVES ... thì việc thực thi tập lệnh với "người dùng" là đủ 😀

  10.   Emilio dijo

    Đó là một ý tưởng hay, nhưng tôi nghĩ bạn sẽ tiết kiệm cho mình sửa đổi rc.local và chạy nó mỗi phút bằng crontab, và do đó bạn tránh được vấn đề chạy nó dưới dạng root và phần còn lại, mặt khác, ngay cả khi nó không ảnh hưởng nhiều, bạn sẽ tiêu thụ bộ nhớ của máy tính một cách vô ích cứ sau 5 giây để kiểm tra xem có phải usb hay không, ngay cả khi nó không. Đó là quan điểm của tôi

    1.    KZKG ^ Gaara dijo

      Ý tôi là, kiểm tra sau mỗi 1 phút, phải không? Tôi đã không làm như vậy vì… điều gì sẽ xảy ra nếu USB được kết nối và ngắt kết nối trong vòng chưa đầy 1 phút? 😀

      Tôi muốn làm điều đó 5 giây một lần để đảm bảo thực sự "nắm bắt" tất cả USB 😉

      Nếu tôi hiểu lầm bạn, xin vui lòng sửa cho tôi 🙂

      Xin kính chào và kính chào.

      1.    Emilio dijo

        Có, hãy kiểm tra mỗi phút qua cron, nhưng mỗi người có một cách khác nhau để nhìn nhận vấn đề, không có gì khác ngoài việc xem mã, sẽ không tốt hơn nếu kiểm tra xem thư mục /home/.USBDRIVES đã tồn tại trước khi tạo nó, là một gợi ý không hơn không kém

        Liên quan

        1.    KZKG ^ Gaara dijo

          Vâng, đó là một chi tiết mà tôi để ý nhưng ... tôi lười giải quyết nó LOL!

          Tương tự như vậy, tôi có thể đặt nhật ký nơi các tệp đã được sao chép được hiển thị (nhật ký riêng lẻ cho từng thiết bị), thậm chí có thể gửi nhật ký này qua email (sử dụng một số phương pháp gửi email bằng thiết bị đầu cuối của những cái tôi đã đặt ở đây trên trang web ) ... nhưng như tôi đã nói với bạn, tôi hơi lười biếng ^ - ^ U

  11.   pavloco dijo

    Hahaha tuyệt vời.

  12.   lục giác dijo

    AHA! Vì vậy, phần mềm của bạn có thể được sử dụng cho mục đích xấu. CƯỜI LỚN!!! 🙂

    Thủ thuật là tốt, nhưng ... nếu bạn muốn ngắt kết nối USB trước khi tập lệnh hoàn tất việc sao chép nội dung của nó? Trong trường hợp đó, nó sẽ phàn nàn rằng nó đang được sử dụng và nó sẽ được nhận thấy rằng có điều gì đó không ổn. 🙂

    1.    KZKG ^ Gaara dijo

      Trên thực tế, hệ thống sẽ không cho phép ngắt kết nối USB vì "thứ gì đó" sẽ sử dụng nó 😉

      1.    lục giác dijo

        Chính xác! Và đó là lúc giáo sư của Oscar nghĩ rằng ông đã tìm thấy một loại virus linux. CƯỜI LỚN!! 🙂

  13.   Oscar dijo

    Có lần bạn đã nhắc tôi rằng tôi đã làm điều gì đó tương tự (trên Uni của tôi nếu chúng tôi có linux / windows), nhưng tôi đã tạo một chương trình C tạo ra hàng nghìn thư mục. Tôi đã bọc USB cho một người đã cắm nó vào. Người quản lý trung tâm máy tính đã rất ngạc nhiên! Anh ấy tưởng mình tìm thấy virus trong linuxx muajajajaja ... ahhh .. mấy lần rồi =)

    1.    miguel dijo

      và sự khác biệt với virus là gì?

      1.    Oscar dijo

        Điều đó tôi đã lấy từ xa USB của anh ấy và chạy chương trình 😛

        1.    miguel dijo

          hahahaha, vậy là hack XD

    2.    KZKG ^ Gaara dijo

      ????
      hehehehehe vậy là bạn đã tìm thấy virus trong Linux đúng không? … CƯỜI LỚN!!

  14.   semproms dijo

    Nó chỉ không hoạt động đối với tôi xD, nếu tôi cố gắng chạy nó từ thiết bị đầu cuối, nó sẽ cho tôi biết điều này: ./usb-spy.sh: dòng 31: [: -lt: dự kiến ​​toán tử đơn vị
    Dường như có điều gì đó không ổn với dòng này: if [$ USBSIZE -lt 15664800]; sau đó
    Nhưng tôi không biết nó là gì, vì nó cũng không tạo thư mục .USB.

    Nếu nó có thể được giải quyết, tôi có thể tìm thấy một tập lệnh hữu ích.

    1.    lục giác dijo

      Hãy thử thay thế df bằng / bin / df và đảm bảo khởi chạy nó dưới dạng root.

      1.    semproms dijo

        Được rồi, bây giờ nếu nó tạo thư mục .USB bên trong thư mục chính, nhưng nó liên tục nói với tôi thông qua thiết bị đầu cuối rằng: "./usb-spy.sh: dòng 31: [: -lt: unary operator mong đợi" và nó không ' t copy gì, trong dòng đó chắc có mâu thuẫn gì đó, mình đánh giá cao sự giúp đỡ nếu ai đó thấy.
        Cám ơn rất nhiều.

        1.    lục giác dijo

          Bạn có thể cung cấp cho chúng tôi nội dung của tệp / etc / mtab khi USB được gắn không?

          1.    semproms dijo

            Chắc chắn rồi, đây:

            / dev / sda12 / ext4 rw, error = remount-ro 0 0
            proc / proc proc rw, noexec, nosuid, nodev 0 0
            sysfs / sys sysfs rw, noexec, nosuid, nodev 0 0
            none / sys / fs / fuse / links fusectl rw 0 0
            none / sys / kernel / debug debugfs rw 0 0
            none / sys / kernel / security securityfs rw 0 0
            udev / dev devtmpfs rw, mode = 0755 0 0
            devpts / dev / pts devpts rw, noexec, nosuid, gid = 5, mode = 0620 0 0
            tmpfs / run tmpfs rw, noexec, nosuid, size = 10%, mode = 0755 0 0
            none / run / lock tmpfs rw, noexec, nosuid, nodev, size = 5242880 0 0
            none / run / 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 $

            Các dòng cuối cùng là của USB / dev / sdb1 được gắn kết

          2.    lục giác dijo

            Hãy xem nếu chúng ta có nó. 🙂

            Cung cấp cho chúng tôi đầu ra của lệnh df. Và thử thêm dòng:

            echo $ USBSIZE

            Ngay trước if điều đó đưa ra vấn đề và cho chúng tôi biết điều gì sẽ xảy ra khi khởi chạy script. Nó sẽ giống như thế này:

            USBSIZE = `/ bin / df | grep $ USBDEV | awk {'print $ 2'} '
            echo $ USBSIZE
            nếu [$ USBSIZE -lt 15664800]; sau đó

            Và để đề phòng, cũng cho chúng tôi biết đầu ra của lệnh df nào.

            1.    semproms dijo

              Ok, trong các phần, lệnh df trả về cho tôi điều này:

              Hệ thống tập tin 1K-blocks Đã sử dụng Có sẵn Sử dụng% Gắn trên
              / dev / sda12 54082300 45246956 6125892 89% /
              udev 2004028 4 2004024 1% / nhà phát triển
              tmpfs 805768 1180 804588 1% / lần chạy
              không có 5120 0 5120 0% / chạy / khóa
              none 2014420 92 2014328 1 XNUMX XNUMX% / run / shm
              / dev / sdb1 1023200 322256 700944 32% / media / DOCU 3

              Lệnh df trả về cho tôi: / bin / df

              Sau đó, tôi đã đặt echo $ USBSIZE, và kết quả là như nhau, nó không in bất cứ điều gì mới, nhưng lỗi từ trước, điều buồn cười là điều này xảy ra với USB mà tôi đang thử nghiệm, nếu tôi đặt 500GB ổ cứng ngoài Có, nó trả về kích thước của đĩa trên màn hình, nhưng 500 vượt quá 16 của if, do đó với đĩa cứng, nó không có tác dụng gì.

              Nhưng với USB, nó không có tác dụng gì, ngoài việc hiển thị lỗi: ./usb-spy.sh: dòng 34: [: -lt: dự kiến ​​toán tử đơn vị
              Nó như thể nó không thể hiển thị kích thước của USB, nhưng với lệnh df tôi sẽ có được kích thước của nó.

              Cảm ơn sự giúp đỡ, chúng ta hãy xem nếu chúng tôi có thể nhận được nó!


            2.    semproms dijo

              Trong trường hợp lệnh không tốt ở đây, tôi để lại ảnh chụp màn hình: http://i48.tinypic.com/j5dvn5.jpg


          3.    lục giác dijo

            Tôi thấy rằng trong mtab, đường dẫn mà nó xuất hiện được gắn kết là «/ media / DOCU403» trong khi trong df nó xuất hiện «/ media / DOCU 3». Điều này làm cho grep không tìm thấy nó và không trả về kích thước. Hãy thử thay đổi các dòng đầu tiên của for để chúng trông giống như sau:

            cho USBD trong `cat / etc / mtab | phương tiện truyền thông grep | awk '{print $ 1}' '';
            do
            USBDEV = `cat / etc / mtab | grep $ USBD | awk '{print $ 2}' ''
            USBSIZE = `/ bin / df | grep $ USBD | awk {'print $ 2'} '

            Các thay đổi bao gồm thay đổi tên của biến for thành USBD, thay đổi $ 2 ở cuối dòng for thành $ 1, chèn dòng bắt đầu bằng USBDEV ngay sau khi thực hiện và thay đổi USBDEV thành USBD ở dòng bắt đầu với USBSIZE… Tôi hy vọng tôi đã không làm lung tung. 🙂

            Ý tưởng là làm cho theo tên của thiết bị thay vì bằng điểm gắn kết.

            1.    KZKG ^ Gaara dijo

              Vấn đề là trong mtab khi một thiết bị có khoảng trắng ... nó sẽ đặt một số ký tự "lạ" trên dòng, cụ thể là ở vị trí của khoảng trắng.

              Không có gì, đơn giản để giải quyết bằng cách thay đổi cách $ USBDEV được chỉ định, ở dòng 28, hãy thay đổi nó và đặt nó như thế này:
              for USBDEV in `df | grep media | awk -F / {'print $5'}` ;

              ????


          4.    Atheus dijo

            Hãy để tôi xem nếu tôi có thể giúp bạn ...

            Toán tử một ngôi hiển thị nó vì nó không xác định được kích thước của đĩa, điều này xảy ra vì nó không kiểm tra nó, điều này xảy ra vì nó được gọi

            Tài liệu 3

            và coi nó là hai giá trị, nếu đó là DOCU, nó sẽ không mở ra sự cố

            Có thể điều này sẽ hiệu quả với bạn

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

            Xin chào 🙂

            1.    semproms dijo

              Thật vậy, đó là vấn đề, bởi vì tôi vừa thử với USB khác có tên với một từ không có dấu cách, ví dụ "lớp" và tập lệnh hoạt động mà không có vấn đề, đó là lý do tại sao nó nhận dạng đĩa cứng chứ không phải bộ nhớ, nhưng bây giờ mọi thứ Tôi biết cách đặt dấu ngoặc kép trong mã tập lệnh, tôi có phải đặt chúng vào "$ USBNAME" không?

              Rất cám ơn Atheyus và Hexborg đã giúp đỡ, mọi việc gần như đã xong.


          5.    KZKG ^ Gaara dijo

            Thật ra semproms nó cực kỳ đơn giản để sửa chữa 😉
            Dòng 28 ... thay đổi nó thành thế này:
            for USBDEV in `df | grep media | awk -F / {'print $5'}` ;

            Tôi vừa thực hiện thử nghiệm với thay đổi này và nó hoạt động tốt với các thiết bị có nhãn / tên có khoảng trắng :)

            Bây giờ tôi sẽ thực hiện thay đổi trong tập lệnh để tải xuống.

          6.    lục giác dijo

            Rất tốt. Vì vậy, nó rất dễ dàng để sửa chữa. 🙂

  15.   auroszx dijo

    Ohhh, rất khéo léo 😀 Tôi sẽ lưu ý trong trường hợp tôi cần ...

  16.   semproms dijo

    KZKG ^ Gaara, với cách sắp xếp đó nó hoạt động hoàn hảo, bây giờ nếu tôi copy USB có khoảng trống trong tên, rất cảm ơn mọi người đã giúp đỡ, tôi sẽ thử xem có thể làm cho nó chạy được khi khởi động hệ thống hay không. Kiểm tra mọi chu kỳ nếu có bất kỳ USB nào được kết nối.

    Cuối cùng chúng tôi đã đạt được nó xD.

    1.    KZKG ^ Gaara dijo

      ^ - ^ ... hay quá hehe.
      Vấn đề là tôi đã sử dụng mtab để nhận ra USB, tôi có thể chỉ đơn giản sử dụng df ... Tôi sử dụng mtab vì tôi nghĩ sẽ rất thú vị khi giải thích tệp này cho họ, rằng họ biết điều đó, nhưng tôi không lường trước được điều này lỗi sẽ xảy ra với các thiết bị có dấu cách lol.

      Mọi thắc mắc hay vấn đề bạn cứ để lại, hầu như mọi người ở đây đều thích giúp đỡ xD

      Liên quan

    2.    lục giác dijo

      Tất nhiên. Chúng tôi là người dùng Linux. Chúng tôi luôn nhận được nó. XD.

  17.   Yeretic dijo

    Cài đặt một daemon trên PC của giáo viên sẽ tạo một bản ghi của tất cả các tệp .doc, .docx, .odt, .pdf và gửi chúng cho bạn qua đường bưu điện. Cũng như quét PC theo thời gian để tìm kiếm các thay đổi, tệp mới hoặc xóa trong sổ đăng ký nói trên và bất kỳ tin tức nào cũng sẽ gửi cho bạn tệp đã sửa đổi hoặc mới qua thư.

  18.   Yeretic dijo

    Dù sao, tôi nghĩ rằng không chỉ là một cú bắt, thực hiện kịch bản đó (VÀ NHƯ ROOT !!!!) là một hành động tự sát. Bạn đang làm cho cuộc sống và mọi thứ trở nên dễ dàng hơn 700% cho bất kỳ ai quan tâm đến việc chèn tệp trên PC của bạn với quyền root và mọi thứ. Hãy nhớ rằng các tiện ích mở rộng không tồn tại trong Linux và .doc trong Linux có thể giống như một văn bản, một video hoặc thậm chí tệ hơn, một tập lệnh (lần này với ý định rất xấu).

    1.    KZKG ^ Gaara dijo

      Chạy nó dưới dạng root là không hoàn toàn cần thiết, chỉ cần xác định thư mục nơi nội dung sẽ được đặt ở đâu đó mà người dùng đang chạy có quyền ghi (ví dụ: nhà riêng của họ) và thế là xong 🙂

      Trên các tệp nguy hiểm ... tốt, bạn có thể thêm một số dòng sẽ chmod -x vào tất cả các tệp, do đó làm mất thuộc tính thực thi.

      1.    semproms dijo

        Tôi đã thêm những dòng này ở đầu để xóa thư mục .USBDRIVES nếu nó đã được tạo:

        nếu [-s $ PLACE]
        sau đó rm -r $ PLACE
        fi

        Bằng cách này, nó sẽ không gây ra lỗi "thư mục đã tồn tại", nghĩa là, nếu bạn phải cẩn thận rằng không có gì trong thư mục .USBDRIVES mà chúng ta không muốn bị xóa, vì nó sẽ xóa nó và đặt khác ở vị trí của nó.

  19.   Daniel dijo

    Để thêm các định dạng tệp mới, chỉ cần ghi chúng vào usb-spy? ví dụ .jpg .mp3, v.v.

    1.    KZKG ^ Gaara dijo

      Để thêm các loại tệp mới, bạn đặt nó vào usb-spy.files
      Nhìn vào nội dung của tập tin và bạn sẽ thấy cách thêm chúng vào, nó khá đơn giản 😉

  20.   Wuilmer bolivar dijo

    Nếu chúng ta ở trên cùng một mạng và có máy của giáo viên, thì điều thú vị sẽ là lập bản đồ mạng, chúng ta có thể có ssh trên các máy và bằng cách đó, phân phối mã trên máy thí nghiệm hoặc thậm chí trên máy của giáo viên. ... Điều này cho tôi rất nhiều ý tưởng: $

  21.   xyler dijo

    Xin chào, tôi chúc mừng bạn vì bài đăng và tất cả những đóng góp của bạn, nhưng tôi có một câu hỏi, hãy xem liệu ai đó có thể giải quyết vấn đề này:

    Tôi đang thử nghiệm tập lệnh của bạn trên máy tính có ubuntu 12.04LTS (với Unity) và nó hoạt động hoàn hảo, nhưng khi tôi thấy rằng tập lệnh này đã ngừng thực thi sau lần đầu tiên nó được chạy, vì thư mục .USBDRIVES đã được tạo, tôi quyết định sử dụng trực tiếp tập lệnh khác này thuộc quyền tác giả của bạn đã được đăng trong một phần khác của diễn đàn này

    ở đây tôi sao chép tập lệnh để bạn tự định vị

    #! / bin / bash
    #
    # - * - THƯỞNG THỨC: UTF-8 - * -
    # Chương trình này là phần mềm miễn phí. Bạn có thể phân phối lại nó và / hoặc
    # sửa đổi nó theo các điều khoản của Giấy phép Công cộng Chung
    GNU # được xuất bản bởi Free Software Foundation,
    # hoặc phiên bản 2 của Giấy phép nói trên hoặc (tùy thuộc vào
    # lựa chọn) của bất kỳ phiên bản nào mới hơn.
    #
    # Nếu bạn thực hiện bất kỳ sửa đổi nào đối với ứng dụng này,
    # nên luôn luôn đề cập đến tác giả gốc của cùng một.
    #
    #Copyleft 2012, DesdeLinux.net {Thành phố Havana, Cuba}.
    # Tác giả: KZKG ^ Gaara

    WHILE = 0

    trong khi [$ CONTROL = 0]; làm
    cat / etc / mtab | grep media >> / dev / null
    nếu [$? -ne 0]; sau đó
    COUNTER = 0
    khác
    COUNTER = 1
    : $ {USBDEV: = `cat / etc / mtab | phương tiện truyền thông grep | awk '{print $ 2}' '' / »}
    cp $ USBDEV / * / home /
    fi
    ngủ 5
    thực hiện

    thoát 0

    Chủ đề sau đây là sự thống nhất trong ubuntu12.04 lts rằng tập lệnh cuối cùng chạy tốt và hoạt động nhưng khi tôi hạ cấp cùng một máy tính vì lý do "x" và cố gắng làm cho nó hoạt động trong ubuntu 10.10 thì không, tôi có thể làm cho nó hoạt động
    Một mặt, nó gây ra lỗi và nó không đọc các ổ đĩa bút có tên ghép, ví dụ: DATA-G, cũng như không sao chép các tệp có tên ghép. Ngoài vấn đề này, tôi có vấn đề là tập lệnh chỉ được thực thi khi máy tính được khởi động lại một lần.

    Câu hỏi sẽ là: làm thế nào tôi có thể làm cho tập lệnh đó sao chép cho tôi các ổ bút và tệp có tên ghép
    và nếu sử dụng crontab hoặc tôi có thể lên lịch để nó hoạt động vào một thời điểm nhất định

    Một chi tiết khác, trong Ubuntu 10.10, vì nó sử dụng Gnome, tôi muốn thêm một số ràng buộc để tính đến, khi cấp đặc quyền thực thi cho một tập lệnh, nó phải được đặt trong /etc/init.d chứ không phải trong / etc /
    (Hãy lưu ý rằng bạn phải dán nó đến đó từ ga cuối với sudo nautilus)

    mặt khác, một thứ nguyên khác sẽ là sau khi dán nó vào đó để xem liệu nó có thể được thực thi hay không, nó phải được thực hiện trong một thiết bị đầu cuối khác

    sudo su (là root)
    mật khẩu

    ls

    cd / etc / init.d

    ls-l

    và ở đó chúng tôi nhảy nếu nó đang chạy hay không

    sau đó trong cùng một thiết bị đầu cuối hoặc trong một thiết bị đầu cuối khác tại một thời điểm khác là gốc và ở trong etc / init.d (nghĩa là cho đến bước cd / etc / init.d) như trong thiết bị đầu cuối trước đó, chúng tôi tiếp tục như sau để cung cấp cho nó quyền thực thi

    sudo chmod + x script.sh

    update -rc.d script.sh mặc định 80

    khởi động lại

    Tôi lặp lại điều đó để nó tự động thực thi trong ubuntu 10.10 nếu nó là một phiên bản khác như 12.04, bạn phải làm những gì KZKG ^ Gaara nói

    Và một câu hỏi cuối cùng, làm cách nào để tôi muốn sao chép nội dung (tối đa 3 thư mục con của ổ đĩa) vào trang chủ hoặc vào thư mục trang chủ ẩn hay không, giả sử đó là .USBDRIVES
    trong mã tôi sẽ không phải nói

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

    Tóm lại, để đạt được những gì mình muốn, kịch bản phải ở thế nào?
    bởi vì tôi đã cố gắng sửa đổi dòng mà họ đã sửa đổi thành usb-spy sh nhưng với dòng khác ghi trực tiếp tại nhà và ném cho tôi một lỗi trong dòng sửa đổi.? Trân trọng . Cảm ơn bạn

  22.   Kakashi dijo

    Tôi không thể tải xuống tập lệnh thứ hai

  23.   kim loại dijo

    Rất tốt. 😉

  24.   kamaleon dijo

    Và nếu tôi không thực hiện các bước bạn đưa ra, điều gì sẽ xảy ra? Nó không chạy hoặc nó chỉ chạy nhưng không có root? Nếu các máy tính có một hệ thống giả sử khôi phục tất cả cấu hình bên trong của máy tính khi tắt, nó có hoạt động không? Cảm ơn bạn.

    1.    KZKG ^ Gaara dijo

      Trong trường hợp hệ thống có 'cái gì đó' mặc định là thư mục / home / thì bạn phải sửa đổi tập lệnh, trong đó nó nói / home / thay đổi nó thành / opt / hoặc một số thư mục khác không bị ảnh hưởng.

  25.   gambi dijo

    Tôi nghĩ rằng để cải thiện tập lệnh và tránh sự xâm nhập trong ổ đĩa được phát hiện, điều tối ưu sẽ là ưu tiên loại, kích thước tệp. Ví dụ: để lại tệp lớn từ 100 megabyte trở lên là cuối cùng. Hoặc sao chép đầu tiên các tệp doc, docx, txt, pdf, xml, ... vv, v.v. và để lại tệp avi, mp4, mkv cho ...

  26.   Lucas dijo

    Xin chào, ý tưởng là tốt. Tôi muốn hỏi hai câu hỏi:
    - Nó có thể được thực hiện ngược lại? tạo một tập lệnh cho mặt dây chuyền để nó kết nối với bất kỳ máy nào và trích xuất các tệp.
    - hoạt động cho hệ điều hành Windows?

    1.    KZKG ^ Gaara dijo

      Xin chào,

      Tôi không chắc làm thế nào nó có thể được thực hiện khi kết nối ổ đĩa, cùng một ổ đĩa tự thực thi một tập lệnh mà nó có bên trong.

      Và không, tập lệnh này không hoạt động với Windows 🙂

      1.    LUCAS dijo

        Được rồi, cảm ơn bạn đã trả lời tôi, tôi sẽ điều tra cách thực hiện

  27.   Jose Damian Bazaga Ruiz dijo

    Thật là một kịch bản hay. Tôi đã phân tích nó, và nó có vẻ tuyệt vời đối với tôi, hy vọng một ngày nào đó tôi cũng có thể tạo ra những kịch bản thực tế như vậy.

  28.   jose dijo

    Đóng góp tuyệt vời, mặc dù tiện ích mà tôi sẽ cung cấp cho nó không chính xác là những gì bạn gây ra, nếu tôi sử dụng nó để sao lưu tệp của một nhóm người dùng, hành vi sai trái mà tôi mắc phải… hehehehe….

  29.   bao bọc dijo

    khi tôi cố gắng chạy nó cho tôi dòng lỗi 31: [: quá nhiều đối số
    xóa dòng đó để xem nó có hoạt động không. và nó chỉ ra rằng nó là dòng hạn chế kích thước của các thiết bị.
    khi loại bỏ nó sẽ sao chép những gì tôi có trong các phân vùng được gắn kết của mình 🙁

  30.   Giá trị dijo

    Xin chào, tôi là người mới và tôi biết cái nồi cũ nhưng tôi rất thích nó, kịch bản của bạn rất giáo dục

    Cảm ơn bạn đã chia sẻ nó và giải thích nó chi tiết ...

    Lời chào

  31.   doltrox dijo

    Bạn ơi, bạn cứu tôi, nó đủ để đánh lạc hướng giáo viên và giới thiệu cái usb cho máy tính xách tay của tôi và sau đó hahahaaj vượt qua kỳ thi và ghi chú từ tất cả hahaha

    1.    otam222 dijo

      Bạn có thể chuyển cho tôi kịch bản, liên kết bị lỗi

    2.    otam222 dijo

      Bạn có thể chuyển cho tôi tập lệnh mà liên kết bị sập

  32.   Worm2D2 dijo

    kzkggaara, bạn có thể tải lại tệp lên không? các liên kết không hoạt động: /, cảm ơn bạn rất nhiều

  33.   khốn dijo

    Bạn có thể tải liên kết lên được không?

  34.   Necr0 dijo

    nghe! Chú! bạn có những lời khen ngợi đã rơi xuống, bạn có thể nâng cao chúng một lần nữa!
    ĐỒNG Ý! : v

  35.   Necr0 dijo

    tốt, tôi làm điều này một lần nữa bởi vì tôi không biết liệu những gì tôi muốn nói đã được tải lên hay chưa….

    tốt đó là bạn có các liên kết xuống, bạn có thể tải chúng lên!

  36.   rlorau dijo

    Các liên kết đã xuống !!!

  37.   Developer24 dijo

    Vui lòng gửi lại liên kết @usemoslinux Tôi đang điều tra về chủ đề này, cảm ơn!

  38.   Vô danh dijo

    Tập lệnh có thể được tải xuống từ đây. Tôi nghĩ nó giống nhau

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

  39.   John dijo

    Vậy thì….

    Tôi nghĩ từ quan điểm khiêm tốn của mình rằng đó là một bài báo tuyệt vời và nếu có người nói rằng bạn là một kẻ gian lận, thì tôi nghĩ rằng đó là tùy theo mục đích mà bạn sử dụng chương trình.
    Cá nhân tôi thích hơn vì biết ngôn ngữ lập trình cho linux vì tôi chỉ làm việc trong java, cảm ơn người bạn đời đã khơi dậy niềm quan tâm của tôi khi biết thêm về ngôn ngữ cho linux.

    Tôi cám ơn.

  40.   hecorat dijo

    Xin chào các bạn, vì tôi đã tìm thấy một cách khác để sử dụng tập lệnh này là sao lưu, tôi sẽ nói chuyện với các bạn một chút, tôi có hai thiết bị, một máy ảnh và một hdd, điều tôi muốn là thay vì ghi các tệp, các tệp cục bộ được lưu. chúng trong một hdd bên ngoài từ máy ảnh sang hdd nhưng nó cho tôi lỗi "quá nhiều đối số" bạn có thể giúp tôi không

  41.   LUIS GERARDO POLANCO VERA dijo

    Nó chỉ hoạt động với các thiết bị có hệ điều hành linux?

  42.   Thử nghiệm dijo

    Ai đó nâng nó lên, làm ơn!

  43.   gazelene dijo

    Xin chào, tôi không có linux và ở trường tôi họ sử dụng Windows, tôi đã sử dụng ứng dụng từ usb chụp và tôi chỉ sao chép 5 tệp từ bộ nhớ của giáo viên, tôi nghi ngờ rằng usb có bảo vệ, vì điều tương tự đã xảy ra hai lần, sẽ có một số cách khác để trừ thông tin đầy đủ từ usb đó?

  44.   zaraki dijo

    Hãy tiếp tục nếu bạn nói mã sẽ đơn giản, vì có vẻ rất thú vị khi xem các phương pháp hoạt động để xem liệu USB được kết nối hay kích thước của phân vùng. Thật tệ là họ đã xóa tập lệnh mega.nz, bạn có thể tải nó lên lại không?

    Lời chào và công việc tuyệt vời, đơn giản nhưng đầy đủ chức năng, thậm chí có thể tự động hóa các bản sao từ USB !!!

  45.   Breaks dijo

    Tốt!
    Tôi vừa vào bài đăng trên blog của bạn và tôi thực sự quan tâm. Điều xảy ra là khi bạn nhấp vào tệp .zip chuyển hướng bạn đến mega, điều đó có nghĩa là tệp đó không còn nữa.
    Tôi đã tự hỏi liệu bạn có thể gửi cho tôi những tệp được cho là sẽ được tải xuống không.
    Xin chân thành cảm ơn và kính chào!

  46.   Alfredo Pereira dijo

    Công nghệ có thói quen thu nhỏ kích thước khi năm tháng trôi qua. Và điều đó đã xảy ra ở một mức độ đáng kinh ngạc với ổ đĩa trạng thái rắn (SSD). Giờ đây, bạn có thể tải chúng với kích thước tương đương với ổ USB flash nhanh nhất.

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

  47.   a dijo

    Bạn có thể gửi cho tôi tệp hoặc tải lên lại được không? Nó xuất hiện mà không thể tải xuống được