انجمن ویکی قلم‌های فارسی
ورود / عضویت

کپی یک فولدر با استفاده از ترمینال یا اتومیتور در جای دیگر

بحث‌های کلی درمورد سیستم عامل مکینتاش (OS X)

کپی یک فولدر با استفاده از ترمینال یا اتومیتور در جای دیگر

پستتوسط Ilia » 10 مارس 2016, 23:44

با استفاده از rsync در ترمینال میشود بسرعت محتویات یک فولدر را در مقصدی که میخواهید بسرعت کپی کنید.
مثلا اجرای این دستور در ترمینال:
کد: انتخاب همهٔ
rsync -va --delete-after "/Users/ilia/Documents/Active" "/Volumes/WD/Ilia/"

کل فولدر Active را که داخل فولدر Documents که آن در داخل هوم یوزر ilia است، آرکایو میکند به مقصد: فولدر Ilia در داخل هاردی بنام WD.

آن delete-after هم یعنی وقتی که کپی و سینک تمام شد، نسخهٔ قبلی را پاک کن.

اگر بجای آن فقط بنویسید delete، فایل‌های اضافی را درجا دیلیت میکند و منتظر پایان کپی شدن نخواهد ماند. این فضای کمتری در مقصد لازم دارد، اما اگر به دلیلی کپی کردن موفق نباشد، امکان از دست دادن فایل‌های مقصد هست. در آن صورت دستور میشود:
کد: انتخاب همهٔ
rsync -va --delete "/Users/ilia/Documents/Active" "/Volumes/WD/Ilia/"


اگر آن delete را کلا بردارید، فایل‌های قبلی را پاک نخواهد کرد و فایل‌های جدید به قبلی‌ها اضافه خواهد شد.

این فرمول کلی است:
کد: انتخاب همهٔ
rsync -av --delete /Volumes/A/ /Volumes/B


حالا میشود این را با اتومیتور بصورت یک برنامه در آورد:
rsync_Automator.jpg


و نتیجه را بصورت یک app سیو و اجرا کرد که خیلی کار را راحت‌تر میکند.

آن اکشنی که من در اتومیتور به در پایین اضافه کرده‌ام، نتیجهٔ کار را روی تکست‌ادیت به شما نشان خواهد داد. این اکشن را میشود اصلا نداشت یا اینکه disableاش کرد.
TE.png


و در آخر براحتی میشود این را میزان کرد که بوسیلهٔ برنامهٔ Calendar خودش مثلا هر روز سر فلان ساعت اجرا بشود.

----
http://apple.stackexchange.com/question ... -to-backup
posting.php?mode=post&f=4#preview
http://www.bananica.com/Geek-Stuff/Sync ... and-Rsync/
نماد کاربر
Ilia
Site Admin
 
پست‌ها : 5612
تاریخ عضویت: 25 سپتامبر 2006, 01:01
محل سکونت: کانادا

پاسخ: کپی یک فولدر با استفاده از ترمینال یا اتومیتور در جای

پستتوسط Pooria Azimi » 11 مارس 2016, 07:47

rsync خیلی ابزار قدرتمندیه! مثلاً اگر از rsync -u یا rsync --update استفاده کنید، فقط بخش‌های تغییرکردهٔ فایل‌ها رو جابجا می‌کنه! فلگِ progress-- هم وضعیت تبدیل رو در ترمینال نشون می‌ده... فرضاً اگر بخواهید از تمام پوشهٔ کاربری به‌جز ~/VirtualBox کپی تهیه کنید با فلگِ زیر می‌شه این کار رو کرد:
کد: انتخاب همهٔ
rsync --update --archive --progress --exclude=~/VirtualBox SRC DEST

حتی می‌شه pattern مشخص کرد و گفت فرضاً همهٔ فایل‌ها به‌جز فایل‌های با پسوند exe یا فایل‌هایی که داخل اسمشون کلمهٔ confidential وجود داره رو ignore بکنه؛ یا برعکس، فقط یک‌سری فایل با pattern مشخص رو کپی بکنه.

همچنین می‌شه از rsync برای انتقال فایل بین دو کامپیوتر (مثلاً کامپیوتر شخصی و سرور، یا دو کامپیوتر داخل یک شبکه) استفاده کرد. در این حالت، اگر از update استفاده کنید، فقط بخش‌های تغییرکردهٔ فایل‌ها منتقل می‌شه (که بسیار بسیار سریع‌تر از کپی کردن فایل‌ها از ابتداست).

من نمی‌دونم برنامهٔ Calendar چیه، اما بدون خرید برنامهٔ جانبی هم مک این قابلیت رو داره که برنامه یا اسکریپتی رو در زمان‌های از پیش معین اجرا بکنه (cron که خیلی ساده‌ست و فقط یک‌خط دستور داره، یا از اون پیشرفته‌تر یا launchd). احیاناً اگر دانستن این روش (یا نکات دیگری در مورد rsync) به‌درد کسی از دوستان می‌خوره لطفاً بگن تا توضیح بدم!
نماد کاربر
Pooria Azimi
Site Admin
 
پست‌ها : 3332
تاریخ عضویت: 23 اوت 2008, 14:32
محل سکونت: Santa Barbara, CA

پاسخ: کپی یک فولدر با استفاده از ترمینال یا اتومیتور در جای

پستتوسط Pooria Azimi » 11 مارس 2016, 07:54

یک خاطرهٔ نسبتاً جالب در مورد rsync: در حدود سالهای ۲۰۱۰ تا ۲۰۱۲، اکثر فایل‌های حجیمی که با زحمت و اینترنت قطره‌چکانی از اپل و بعضاً وب‌سایت‌های دیگه دانلود می‌کردم (مثل آیتیونز یا آپدیت‌های مک یا iWork یا iLife) به‌صورت خراب دانلود می‌شدند. نه کاملاً خراب؛ مثلاً ۹۹٪ فایل سالم بود اما یک تکه‌هایی‌ش بی‌دلیل خراب می‌شد. بجای دانلود دوبارهٔ اون فایل ۵ گیگابایتی (که با اون سرعت برای من ۲ روز طول می‌کشید)، همون فایل رو روی یک سرور با سرعت بالا دانلود می‌کردم و بعد از rsync کمک می‌گرفتم تا فقط بخش‌های خراب فایلِ داخل کامپیوتر من رو از سرورم دانلود بکنه، که معمولاً ۳۰۰-۴۰۰ کیلوبایت بیشتر نمی‌شد و به‌این‌ترتیب به‌جای ۲ روز، سالم‌سازی فایل فقط چند دقیقه طول می‌کشید!

به‌عبارت دیگه، مهم‌ترین عاملی که باعث شد من اون سال‌ها به خودکشی یا دیگرکشی نیافتم همین rsync بود! دو روز صبر برای دانلود یک فایل و بعد فهمیدن این‌که فایل خرابه و باید دوباره و سه‌باره دانلود بشه شکنجه‌ای غیرقابل‌وصفه!
نماد کاربر
Pooria Azimi
Site Admin
 
پست‌ها : 3332
تاریخ عضویت: 23 اوت 2008, 14:32
محل سکونت: Santa Barbara, CA

پاسخ: کپی یک فولدر با استفاده از ترمینال یا اتومیتور در جای

پستتوسط نیما » 11 مارس 2016, 18:49

ممنون از هر دو عزیز :)

پوریا فک کنم Calendar همون برنامه تقویم OS X هست.
نماد کاربر
نیما
 
پست‌ها : 422
تاریخ عضویت: 14 ژوئیه 2006, 20:51

پاسخ: کپی یک فولدر با استفاده از ترمینال یا اتومیتور در جای

پستتوسط Ilia » 12 مارس 2016, 03:01

مرسی پوریا جان.

بله همانطور که نیما گفت همان برنامهٔ تقویم اپل که روی همهٔ مک‌ها نصب هست، این قابلیت را دارد.

پوریا جان، من ممنون میشوم که استفاده از cron و/یا launchd را با مثال برای این مورد کمی توضیح بدهی. یعنی چطور میشود که مثلا این را میزان کرد که هر روز ساعت ۴ بعد از ظهر اجرا بشود و چطور میشود که جلوی اجرایش را بعدا گرفت.
نماد کاربر
Ilia
Site Admin
 
پست‌ها : 5612
تاریخ عضویت: 25 سپتامبر 2006, 01:01
محل سکونت: کانادا

پاسخ: کپی یک فولدر با استفاده از ترمینال یا اتومیتور در جای

پستتوسط Ilia » 18 مارس 2016, 19:28

برای چگونگی اضافه کردن یک اکشن اتومیتور به برنامهٔ تقویم اپل (Calendar)، این ویدئو را ببینید:
http://macmost.com/adding-automator-ala ... vents.html
نماد کاربر
Ilia
Site Admin
 
پست‌ها : 5612
تاریخ عضویت: 25 سپتامبر 2006, 01:01
محل سکونت: کانادا

پاسخ: کپی یک فولدر با استفاده از ترمینال یا اتومیتور در جای

پستتوسط iSam » 21 دسامبر 2016, 14:19

یک سوأل:
بجای Volumes میشه یک آی پی داد که روی NAS بکاپ بگیره؟
 MacBook Pro 13
نماد کاربر
iSam
 
پست‌ها : 1836
تاریخ عضویت: 09 ژوئن 2006, 00:51
محل سکونت: Austria

پاسخ: کپی یک فولدر با استفاده از ترمینال یا اتومیتور در جای

پستتوسط Ilia » 21 دسامبر 2016, 18:36

من سر کارم همین کار را با روی NAS انجام میدهم. آی‌پی لازم نیست بدهی. هر چه که روی مک mount بشود بصورت Volume خواهد بود. فرمول را بنویس و وقتی به محل مقصد رسیدی، آیکان یا فولدر مورد نظرت را بکش و بینداز داخل ترمینال، آدرسش را خودش وارد میکند. بعد ادامه را رویش تایپ و کامل کن.
نماد کاربر
Ilia
Site Admin
 
پست‌ها : 5612
تاریخ عضویت: 25 سپتامبر 2006, 01:01
محل سکونت: کانادا

پاسخ: کپی یک فولدر با استفاده از ترمینال یا اتومیتور در جای

پستتوسط iSam » 22 دسامبر 2016, 13:11

Ilia نوشته است:[نمایش]
من سر کارم همین کار را با روی NAS انجام میدهم. آی‌پی لازم نیست بدهی. هر چه که روی مک mount بشود بصورت Volume خواهد بود. فرمول را بنویس و وقتی به محل مقصد رسیدی، آیکان یا فولدر مورد نظرت را بکش و بینداز داخل ترمینال، آدرسش را خودش وارد میکند. بعد ادامه را رویش تایپ و کامل کن.


ببین یعنی من این کامند زیر رو توی آتوماتور بنویسم:
rsync -va --delete "/Users/ilia/Documents/Active" "/Volumes/WD/Ilia/"
بعدش توی ترمینال چه کنم که این اتومات هر روز توی مسیر زیر بکاپ بگیره؟
Backup/Terminal/10.11.140.85
 MacBook Pro 13
نماد کاربر
iSam
 
پست‌ها : 1836
تاریخ عضویت: 09 ژوئن 2006, 00:51
محل سکونت: Austria

پاسخ: کپی یک فولدر با استفاده از ترمینال یا اتومیتور در جای

پستتوسط Ilia » 22 دسامبر 2016, 19:10

سامان پست اول را با دقت بخوان همه چیز را توضیح داده‌ام.

اما این هم توضیح بیشتر:

- این اصلا ربطی به این داستان ندارد اما برای راحتی توضیح داستان اینکار را اگر نکرده‌ای بکن:
برو در فایندر و در Preferences فایندر میزان کن که Connected Servers را روی دسکتاپ ببینی.
FinderPref.png


- حالا در فایندر بزن روی دکمه‌های (کامند+k) یا همان Connect to Server زیر منوی GO

- در جدول باز شده بایستی بنویسی:
smb://[آدرس جایی که میخواهی وصل بشوی]

که در مثال شما میشود:
smb://10.11.140.85/


اگر سرور شما با مک سازگاری داشته باشد میشود بجای smb از afp هم استفاده کرد، که در آن صورت میشود بجای بالا نوشت:
afp://10.11.140.85/


اگر وصل بشوی، یک پنجره باز میشود و همهٔ Shareهای آن سرور را به شما نشان خواهد داد. یک سرور میشود shareهای متفاوتی داشته باشد. آن را که میخواهی را انتخاب و به آن وصل بشو. والیوم آن روی دسکتاپت ظاهرخواهد شد. آنرا باز کن و برو و فولدری که میخواهی در داخل آن بک‌آپ بگیری را پیدا کن.

حالا برو در اتومیتور و تایپ کن:
rsync -va --delete-after

به اینجا که رسیدی فولدری که میخواهی از آن بک آپ بگیری را با ماوس بگیر و بینداز در داخل پنجرهٔ ترمینال. در مورد من، کپی کردن فولدر Active که داخل فولدر Ducuments در یوزر ilia منظور بود که آدرسش میشود:
"/Users/ilia/Documents/Active"

برای شما این قسمت مسلما چیز دیگری خواهد بود.

بعد نوبت این است که بگوی که این فولدر مبدا را کجا کپی کند. اینجا است که بایستی آن فولدر مقصد را روی فایندر با ماوست بگیری و بیندازی داخل ترمینال تا فورمول کامل بشود. باز در مثال من مقصد فولدری بود بنام Ilia در داخل هاردی بنام WD که آدرسش این شده بود:
"/Volumes/WD/Ilia/"

بدیهی است که این برای شما فرق خواهد کرد.

خلاصه این فورمول کلی است:
کد: انتخاب همهٔ
rsync -va --delete-after "مقصد" "مبدا"


بدیهی است که برای اینکه این کلا کار بکند، بایستی همیشه قبل از اجرا مک به سرور یا هارد مورد نظر قبلا وصل شده باشد.

فکر کنم که فعلا اکشن تقویم درست کردن زیادی پیچیده باشد. اول از این قسمت را درست کن و از یوزر بخواه که روزی یک مرتبه دستی آن اپی که میسازی را بعد از وصل شدن به سرور اجرا کند.
نماد کاربر
Ilia
Site Admin
 
پست‌ها : 5612
تاریخ عضویت: 25 سپتامبر 2006, 01:01
محل سکونت: کانادا

پاسخ: کپی یک فولدر با استفاده از ترمینال یا اتومیتور در جای

پستتوسط iSam » 22 دسامبر 2016, 19:28

ممنون. من منظورم همان بخش smb بود که برایمان توضیحات بسیار کاملی دادی.
 MacBook Pro 13
نماد کاربر
iSam
 
پست‌ها : 1836
تاریخ عضویت: 09 ژوئن 2006, 00:51
محل سکونت: Austria



بازگشت به سیستم عامل مک


کاربران حاضر در این انجمن: بدون کاربران آنلاین و 3 مهمان