ตรวจสอบโดยอัตโนมัติหากติดตั้งไดรฟ์


0

ฉันต้องการสำรองข้อมูลครอบครัวโดยอัตโนมัติโดยเฉพาะฉันต้องการเรียกใช้เชลล์สคริปต์ (พร้อมrsync) เมื่อมีการเชื่อมต่อไดรฟ์ภายนอก

เนื่องจากมันเป็นเรื่องของครอบครัวมันควรเป็นGUIขับเคลื่อนด้วยอาจเป็นไอคอนอย่าง Dropbox อาจเป็นเชลล์สคริปต์ที่มีfswatchไม่ดีในการเล่นพวกเขาอาจจะบ่นและแน่นอนจะไม่เข้าใจหากมีข้อผิดพลาดเกิดขึ้น

ฉันกำลังคิดเกี่ยวกับ Automator หรือ AppleScript (ฉันมี GUI สำหรับสคริปต์สำรองใน AppleScript แล้ว แต่ไม่มีระบบอัตโนมัติ) เนื่องจาก "Folder Actions" ไม่พร้อมใช้งาน/Volumesแต่โซลูชันอื่น ๆ ยินดีต้อนรับมากกว่า

ข้อเสนอแนะใด ๆ


ที่จริงการกระทำโฟลเดอร์ใน/Volumesโฟลเดอร์ว่าวิธีการที่ฉันทำมันและฉันประสบความสำเร็จนี้ประสบความสำเร็จสำหรับวัตถุประสงค์ของคำตอบนี้ที่นี่ /Volumesมันมีคำแนะนำเกี่ยวกับวิธีการตั้งค่าการดำเนินการสำหรับโฟลเดอร์ หากคุณต้องการให้ฉันให้คำตอบเฉพาะสำหรับคำถามของคุณด้านล่างฉันสามารถลองทำสิ่งนี้ให้คุณหรือคุณเพียงแค่ทำตามคำแนะนำของฉันจากคำตอบอื่น ๆ และปรับให้เข้ากับกรณีการใช้งานเฉพาะของคุณ
CJK

อีกวิธีหนึ่งในการตรวจสอบโฟลเดอร์คือการผ่านทางlaunchdplist ซึ่งสามารถดำเนินการกับ AppleScript เพื่อดำเนินการสำรองข้อมูลหากไดรฟ์ที่ทริกเกอร์ AppleScript นั้นถูกต้อง (เช่นเดียวกับการกระทำของโฟลเดอร์ในส่วนนี้)
CJK

คำตอบ:


1

ฉันเคยทำมาแล้วกับการเข้าสู่ระบบของผู้ใช้ คุณจะไปที่Users & Groupsคลิกที่ผู้ใช้ปัจจุบันไปที่รายการเข้าสู่ระบบกดที่เครื่องหมายบวกที่ด้านล่างและคุณสามารถเพิ่มได้ที่นั่น ฉันสร้างแอพพลิเคชั่นที่คล้ายกันเพื่อตรวจจับ NAS และติดตั้งหากไม่ได้ติดตั้ง:

ป้อนคำอธิบายรูปภาพที่นี่

โค้ดตัวอย่างที่ไม่ได้ทดสอบ:

on run
    tell application "System Events" to set theDisks to name of every disk
    set theNAS to "Shared" ## Change here to name
    set isMounted to false
    if theNAS is in theDisks then set isMounted to true
    if isMounted = false then mount volume "afp://" & theNAS
end run

บางลิงค์ไปสู่การติดตั้ง:

คุณสามารถทำสิ่งต่อไปLaunchAgentนี้เป็นแหล่งข้อมูล:

มีวิธีการอื่นเช่น a launchdแต่คุณจะเสียสละแรมเพื่อให้สามารถตรวจสอบได้ ฉันคิดว่าการเข้าสู่ระบบจะเป็นวิธีที่ดีที่สุดของคุณ


1
ตัดขอบลงเทียบเท่า AppleScript จะเป็นบวกเป็นเส้นก่อนที่จะประกาศตัวแปรtell app "System Events" to if theNAS is in the name of every disk then mount volume "afp://" & theNAS theNASการแนะนำของisMountedตัวแปรดูเหมือนจะละเอียดมากและมักจะทำหน้าที่เพียงเพื่อช่วยให้สามารถอ่านสคริปต์ แต่ดูเหมือนจะทำตรงข้ามที่นี่ ฉันยังแนะนำให้ต่อต้านการโพสต์รหัสที่ยังไม่ทดลองแม้ว่าในกรณีนี้สมองของสคริปต์ของคุณสามารถจับได้สำเร็จ
CJK
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.