ব্যাকআপ স্ক্রিপ্টের জন্য ক্রোন মেল পাঠানো বন্ধ করবেন?


13

আমি আমার মাইনক্রাফ্ট সার্ভারে প্রতি ঘন্টা ক্রোন ব্যবহার করে বিশ্বব্যাপী ডেটা ব্যাক আপ করার জন্য একটি ব্যাকআপ স্ক্রিপ্ট সেট আপ করেছি, কিন্তু যেহেতু বিশ্বগুলি ক্রমাগত প্লেয়ারদের দ্বারা সম্পাদনা করা হয়, টার আমাকে বলছিল যে ফাইলগুলি পড়ার সময় পরিবর্তন হয়েছিল। আমি স্ক্রিপ্টের ট্যারে --ignore-কমান্ড-ত্রুটি যুক্ত করেছি এবং এটি নিজে নিজে চালানোর সময় কোনও ত্রুটি দমন করে, তবে ক্রোন এখনও মেল বার্তা প্রেরণ করে বলে যে ফাইলগুলি পড়ার সময় পরিবর্তন করা হয়েছিল, এবং আমার মেলটি বন্যার শেষ করে কারণ এটি এক ঘন্টা একবার চালান। কেহ কিভাবে এটি ঠিক করতে জানেন? এটি লিপি:

filename=$(date +%Y-%m-%d)
cd /home/minecraft/Server/
for world in survival survival_nether survival_the_end creative superflat
do
if [ ! -d "/home/minecraft/backups/$world" ]; then
mkdir /home/minecraft/backups/$world
fi
find /home/minecraft/backups/$world -mtime +1 -delete
tar --ignore-command-error -c $world/ | nice -n 10 pigz -9 > /home/minecraft/backups/$world/$filename.tar.gz
done

উত্তর:


22

ক্রোন কমান্ডটি চালিত হওয়ার সময় ঘটতে পারে এমন কোনও আউটপুট সহ ইমেল প্রেরণের চেষ্টা করবে। ক্রোন এর ম্যান পেজ থেকে:

কমান্ডগুলি কার্যকর করার সময়, কোনও আউটপুট ক্রন্টাবের মালিককে (বা ক্রন্টাবের মাইল্টো এনভায়রনমেন্ট ভেরিয়েবলে নির্দিষ্ট করা ব্যবহারকারীকে, যদি এর উপস্থিত থাকে) মেইল ​​করা হয়। যে কোনও কাজের আউটপুটও -s বিকল্পটি ব্যবহার করে সিসলগে পাঠানো যেতে পারে।

সুতরাং এটি নির্দিষ্ট ক্রন্টব প্রবেশের জন্য এটি নিষ্ক্রিয় করতে কেবল সমস্ত কমান্ড আউটপুট ক্যাপচার করুন এবং এটি কোনও ফাইলের দিকে বা ডাইরেক্ট করুন /dev/null

30 * * * * notBraiamsBackup.sh >/dev/null 2>&1

1
ডি: আমার উদাহরণ ব্যবহার করে!
ব্রায়াম

@ ব্রাইয়াম - দুঃখিত, আমি অলস বোধ করছিলাম এবং এটি টাইপ করার মতো লাগেনি। আমি যাইহোক 8-) একই জিনিস টাইপ করব।
slm

@ ব্রাইয়াম - এটা কি আরও ভাল? 8-)।
slm

দুর্দান্ত কাজ করে, ঠিক আমি যা খুঁজছিলাম।
কার্টার

নোট যে আমার সেন্টওএস 7, সঙ্গে crontabনা cron, -sমানে selinux context.....
WesternGun

13

এতে সমস্ত কিছু পাইপ করার পরিবর্তে /dev/null(যা কিছু ঘটলে কী ঘটেছিল তার একটি চিহ্ন ছাড়াই আপনাকে ছেড়ে দিতে পারে), আপনি ফাইলগুলি লগ করতে আপনার স্ক্রিপ্টগুলি পাইপ করতে পারেন:

30 * * * * backup.sh > ~/logs/backup.log

এবং মেলগুলি পাওয়া বন্ধ করতে, কেবলমাত্র MAILTOআপনার ক্রন্টব ফাইলের শুরুতে একটি খালি স্ট্রিংয়ে ভেরিয়েবলটি সেট করুন:

MAILTO=""

4

আপনি যদি কোনও নির্দিষ্ট ক্রোন টাস্কের জন্য মেলগুলি না চান তবে আপনি কেবল >/dev/null 2>&1লাইনের শেষে যুক্ত করতে পারেন :

30 * * * * backup.sh >/dev/null 2>&1

আমি এই উপায়টি বেছে নিয়েছি: আপনি সমস্ত কিছুর ট্র্যাক হারিয়েছেন, তবে খুব সুন্দরভাবে।
ওয়েস্টার্নগুন

0

আপনার gnu টার কমান্ডে আপনার নিম্নলিখিতটি যুক্ত করা উচিত : --warning = কোনও ফাইল-পরিবর্তিত হয়নি

এটি সমস্ত " % s: ফাইল পড়ার সাথে সাথে পরিবর্তিত " বার্তাগুলিকে দমন করবে । এবং এই সমাধানটি ব্যবহার করে (এবং সবকিছুকে / dev / null এ পুনঃনির্দেশ না করে) স্টাফ সত্যিই ভুল হয়ে গেলে আপনি ত্রুটি বার্তা পেতে সক্ষম হবেন ..


- ওয়ার্নিং ফ্ল্যাগের সাহায্যে আপনি প্রচুর বিভিন্ন বার্তা সক্ষম করতে ও অক্ষম করতে পারেন যা টার মুদ্রণ করে। : এখানে সব কিওয়ার্ড আপনি ব্যবহার করতে পারেন সঙ্গে ম্যানুয়াল প্রাসঙ্গিক অংশ https://www.gnu.org/software/tar/manual/html_section/tar_27.html

দ্রষ্টব্য: একটি কীওয়ার্ডের সামনে " No- " যুক্ত করে বার্তাটি দমন করা হবে।

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