আমার কাছে একটি স্ক্রিপ্ট রয়েছে যা দূরবর্তী -> স্থানীয় দৃশ্যে ডেটা সিঙ্ক করতে rsync ব্যবহার করে। আরএসইএনসি কমান্ডটি চালুর সাথে সাথেই ত্রুটি কোডটি শূন্যের সমান কিনা তা পরীক্ষা করে দেখুন। যদি এর শূন্য হয় তবে আরও কমান্ড সম্পাদন করা হবে। এটি তবে এই সত্যটিকে বিবেচনা করে না যে rsync সফলভাবে চলতে পারে তবে বাস্তবে কোনও পরিবর্তন হয়নি। এ কারণে সমান শূন্য শর্তটি নির্বিশেষে চলবে যা কিছুটা নিরর্থক।
rsync -aEivm --delete /path/to/remote/ /path/to/local/
if [ $? -eq 0 ]; then
# Success do some more work!
else
# Something went wrong!
exit 1;
fi
আরএসইএনসি কমান্ডের উপর ভিত্তি করে কোন পরিবর্তন হয়েছে কিনা তা যাচাই করার জন্য এটি প্রসারণের সেরা পন্থাটি কী হবে? আমি পড়েছি যে -i পতাকাটি স্টডআউটকে আউটপুট সরবরাহ করতে পারে তবে কীভাবে এটি শর্তযুক্ত ব্লকে রাখা যেতে পারে?
a=$("rsync command")
। এই চালানো হবে rsync
কমান্ড এবং দোকান stdout
মধ্যে a
। তারপরে আপনি পরীক্ষাগুলি চালাতে পারবেনa
| grep /
মতো একটি বা কিছু যুক্ত করতে পারেন, তারপরে গ্রেপের সাথে প্রস্থান স্থিতিটি পরীক্ষা করে দেখুন $?
, যদি আউটপুট না থাকে তবে এটি 1 হওয়া উচিত।
-v
সেখানে প্রবেশ করেছেন, সুতরাং এটি আপনাকে স্টডআউট করার জন্য প্রয়োজনীয় তথ্য সরবরাহ করছে ... উদাহরণস্বরূপ, ফাইলগুলির একটি তালিকা যা আসলে পাঠানো হয়েছিল। যদি কিছু পরিবর্তন না হয় তবে তা ঠিক./
।