টাইম মেশিনটি ব্যাক আপ শেষ করেছে কিনা তা পরীক্ষা করে দেখার জন্য কি কোনও বাশ কমান্ড রয়েছে?


16

আমি একটি স্ক্রিপ্ট লিখছি যা ssh ব্যবহার করে আমার টাইম মেশিন ডিরেক্টরিটি রিমোট সার্ভারে আরএসসিএন করবে। আমি একটি শেল স্ক্রিপ্ট থেকে একটি অ্যাপলস্ক্রিপ্ট এবং আবার কোনও অ্যাপল স্ক্রিপ্টে ফিরে এসেছি এবং সমাধানটি কী ধরণের স্ক্রিপ্টের প্রয়োজন হবে তা আমি সত্যিই চিন্তা করি না।

কোডটির এই ছোট্ট স্নিপেটের সাহায্যে ব্যাকআপ প্রক্রিয়া শুরু করতে আমার সাফল্য পেয়েছে।

do shell script "/System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper >/dev/null 2>&1 &"

আমি এখন যা করার চেষ্টা করছি তা ব্যাকআপ শেষ হয়ে গেলে একটি আরএসসিএন কমান্ড সম্পাদন করা হয়। অ্যাপলস্ক্রিপ্টে ব্যাকআপ প্রক্রিয়াটি সম্পন্ন হয়েছে কিনা তা যাচাই করার জন্য কি কোনও পরিষ্কার উপায় আছে? বা এমন কোনও "হুক" আছে যা আপনি ব্যাশ ব্যবহার করে এটি সম্পূর্ণ হয়ে গেছে কিনা তা পরীক্ষা করে দেখতে পারেন?


আমি কেন আসল আরএসএনসি করব না তা জিজ্ঞাসা করব - আমি যতদূর বুঝতে পেরেছি তাই এটি জিজ্ঞাসা করুন হার্ড লিংক ডিরেক্টরিগুলি আরএসসিএন বুঝতে পারে না যাতে আপনি প্রতিটি ফাইলের একাধিক অনুলিপি গ্রহণ করতে পারেন।
ব্যবহারকারী 151019

প্রতিটি ক্রমাগত ব্যাকআপ নিয়ে যা বোঝানো হয়েছে তার অর্থ, টাইম মেশিন ইতিমধ্যে ব্যাকআপ হওয়া মূল ফাইলগুলির হার্ড লিঙ্কগুলির সাথে একটি ব্যাকআপ উত্পন্ন করবে? আমি এটি জিজ্ঞাসা করছি কারণ আমি টাইম মেশিনের সাথে তেমন পরিচিত নই। যদি এটি হয় তবে হ্যাঁ আমি আসলটি অনুলিপি করতাম। তবে আমি যথেষ্ট নিশ্চিত যে আরএসসিএনসি এর একটি বিকল্প রয়েছে যা এটি হার্ড লিঙ্কগুলি পুনরুদ্ধার করা উপেক্ষা করবে।
হোয়াইটনিজ

1
হ্যাঁ যে কিভাবে টিএম কাজ করে - rsync হার্ড ফাইল লিঙ্ক বুঝতে পারেন কিন্তু আমি মনে করি না টি হার্ড ডিরেক্টরির সংযোগগুলি যা থেকে 10,5 ওএসএক্স অনন্য বুঝতে পারে
user151019

উত্তর:


4

এখানে একটি উপায় - আমি জানি এটি "যথাযথ" সমাধানের কাছাকাছি কোথাও নেই তবে আমি ধারণা করি এটি কার্যকর হবে।

ps ax | grep "/System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper" | grep -v 'grep'

এটি যা করে তা হ'ল ব্যাকআপ-হেল্পার প্রক্রিয়াটির জন্য প্রক্রিয়া তালিকাটি অনুসন্ধান করা, তারপরে গ্রেপ কমান্ডটি প্রদর্শিত না হওয়া থেকে ফিল্টার করে। কমান্ডটি যদি 0 টি ফলাফল দেয় তবে ব্যাকআপড-সহায়ক প্রক্রিয়াটি এখনও সক্রিয় active যদি তা না হয় তবে প্রক্রিয়াটি শেষ হয়ে গেছে, এবং তাই আপনি ধরে নিতে পারেন এটি সম্পন্ন হয়েছে।


1
...pgrep backupd-helper
জেসন সালাজ

1
আমি আরও মার্জিত উপায় খুঁজে পেয়েছি! TIME_MACHINE_PID = $! অপেক্ষা করুন $ TIME_MACHINE_PID
হুইটনিজ

1
@ হুইটনিজ দয়া করে TIME_MACHINE_PID=$! wait $TIME_MACHINE_PIDআপনি একটি পৃথক উত্তরে ব্যাখ্যা করতে পারেন ? ধন্যবাদ.
গ্রাহাম পেরিন

18

tmutil status সিংহ পথে এখন আমাদের কাছে এই ধরণের ক্যোয়ারির জন্য একটি দুর্দান্ত সরঞ্জাম রয়েছে।

আরও নতুন ওএসে, একটি অননুমোদিত কমান্ড রয়েছে tmutil currentphaseযা বর্তমান পর্বের নাম দেখায়।


হ্যাঁ - tmutuilজয়ের সাথে পরিপূর্ণ, এটি ব্যাকআপের স্থিতি, পরিসংখ্যান এবং কিছুটা অগ্রগতিতে চালনা করতে কত সুন্দর তা প্রকাশ করা শক্ত।
bmike

ক্রেজি যে এটি আপাতদৃষ্টিতে নিঃসংশ্লিষ্ট!
zigg

5

আপনি হয়ত এর মাধ্যমে ব্যাকআপটি শুরু করতে পারেন tmutil startbackup -b-bব্যাকআপ শেষ না হওয়া অবধি কমান্ডটিকে অবরুদ্ধ করে।


3

tmutil status|grep -c "Running = 1"

চলমান অবস্থায় '1', যখন '0' না ফেরত দেয়।


3

ব্যাকআপ-সম্পর্কিত প্রক্রিয়াগুলির অনুপস্থিতি কোনও সময় মেশিন ব্যাকআপ সম্পন্ন হওয়ার আশ্বাস নয় is

টাইম মেশিন তার ভলিউমে যার ব্যাকআপগুলি লিখেছে: /Latest/…… ডিরেক্টরিটির পাশাপাশি , বিবেচনা করুন:

  • ... .inProgress/... একত্রিত করে।

যদি সেই বান্ডিলটি বিদ্যমান থাকে তবে একটি ব্যাকআপ অসম্পূর্ণ।


মনে রাখবেন যে কোনও .inProgressডিরেক্টরি না থাকলেও টাইম মেশিন এখনও ব্যাকআপের (যেমন পুরানো ব্যাকআপগুলি অপসারণের) জন্য প্রস্তুত বা গোপনে ব্যস্ত থাকতে পারে।
জিড 14

1

আমার জন্য নিম্নলিখিত কাজ ...


স্ক্রিপ্ট ব্যাকআপ_স্ট্যাটাস:

    #!/usr/bin/env bash
    #
    # Determines if Time Machine is running and works with older Mac OS x versions
    #
    if [ x == x`type -P tmutil` ]; then
            # Older OSx
            count=`ps -ef | grep -v grep | grep -c 'CoreServices/backupd'`
            # Should also detect /Volume/Time Machine …/Latest/… directory ….inProgress/… bundle existence here to make it tight.
    else
            # OSx 10.7+
            count=`tmutil status | grep -c "Running = 1"`
    fi

    if [ $count == 0 ]; then
            echo stopped
    else
            echo running
    fi

স্ক্রিপ্ট ব্যাকআপ_উইট:

    #!/usr/bin/env bash

    #
    # Waits for Time Machine backup to complete
    #
    while [ `backup_status` == running ] ; do
            sleep 2
    done


0

tmutilsকেবলমাত্র 10.7 থেকে বিদ্যমান। তার আগে আপনি /System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helperটাইম মেশিনটি ম্যানুয়ালি চালানোর জন্য , যেমনটি উল্লেখ করেছেন, ব্যবহার করতে পারেন ।

এরপরে waitপ্রক্রিয়াটি শেষ না হওয়া পর্যন্ত আপনি অপেক্ষা করতে ব্যবহার করতে পারেন । তর্ক ছাড়াই এটি কেবল অপেক্ষা করবে; আপনি যদি পিআইডি সরবরাহ করেন তবে আপনি তার রিটার্ন মান (প্রস্থান স্থিতি) পেতে পারেন।

বিশেষত, wait $!সেই শেলটিতে শেষ হওয়া প্রক্রিয়াটির জন্য অপেক্ষা করা হবে। তবে লরি যেমন উল্লেখ করেছেন, টাইম মেশিন শেষ হওয়ার আগে এই অপেক্ষাটি ফিরে আসবে কারণ ব্যাকআপড-হেল্পার ব্যাকআপ শেষ হওয়ার আগে শেষ হয়। আমি কোনও প্রক্রিয়া নাম খুঁজে পাইনি যা ইঙ্গিত করে যে ব্যাকআপটি সম্পূর্ণ হয়নি।

/Var/logs/system.log (বা কনসোলের মাধ্যমে) এর বিষয়বস্তুগুলি লক্ষ্য করে আমি লক্ষ্য করেছি যে ব্যাকআপটি শেষ হয়ে গেলে শেষ কাজটি হ'ল সময় মেশিন ডিস্ক চিত্রটি বের করে দেওয়া। নিশ্চিতভাবেই আমি পরীক্ষা করে দেখেছি যে এটি ব্যাকআপের সময় রয়েছে (এটি ওএস এক্স 10.6.8) /Volumes/Time Machine Backups। সুতরাং আপনি ডিরেক্টরি ডিরেক্টরি বিদ্যমান কিনা তা খতিয়ে দেখতে পারেন। যখন এটি আর না করে, টাইম মেশিন শেষ হয়।

আমি নিশ্চিত নই যে এটি নেটওয়ার্কের উইন্ডোজ মেশিনে ব্যাকআপ নেওয়ার জন্য আমি এখানে দিকনির্দেশগুলি অনুসরণ করেছি তাই এটি সবার পক্ষে কাজ করবে কিনা ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.