ব্যবহারকারী crontab সংরক্ষণ করা হয় কোথায়?


249

আপগ্রেড করার পরে থেকে আমার ব্যবহারকারীর ক্রন্টব মুছে ফেলা হয়েছে। এই বছর এটি প্রথমবারের মতো নয় এবং প্রতিবার এটি পুনরুদ্ধার করা একটি ব্যথা।

আমি আমার ব্যবহারকারীর জন্য ক্রন্টব্যাক ব্যাক আপ করতে সক্ষম হতে চাই তবে তার জন্য এটি কোথায় সঞ্চিত তা জানতে হবে।


4
ভাল লাগবে যদি কেউ কোনও কারণে কেন এটি মুছে ফেলা যায়
ওয়াল্টার ট্রস

1
@ ওয়াল্টারট্রস হ্যাঁ এটি বেশ বিরক্তিকর। আমি অনুমান করব এটি cronপ্যাকেজ আপডেট করার একটি পার্শ্ব-প্রতিক্রিয়া তবে আমি সম্মত - এটি এমন কিছু নয় যা ঘটেছিল।
অলি

ওহ, আমি যে ক্রোন প্যাকেজ আপগ্রেড ব্যবহারকারীর ক্রোন মুছে ফেলব না!
pl1nk

@ pl1nk আমি জানি না এটি কী মুছে ফেলছে তবে তা ঘটতে থাকবে happening যন্ত্রটিতে ভূত, আমার ধারণা।
অলি

ব্যবহারকারীর টেবিলগুলি একটি অস্থায়ী অঞ্চল / var / spool / ক্রোন / ক্রোনট্যাবস / $ ব্যবহারকারী হিসাবে সংরক্ষণ করা হয় যেমন আপনার পরবর্তী বুট বা আপগ্রেডে মুছে ফেলা হতে পারে।
এফসিএম

উত্তর:


325

প্রকৃতপক্ষে, এই ফাইলগুলি হাত দ্বারা পরিচালিত করার পরামর্শ দেওয়া হয় না। প্রতি crontabমানুষ পৃষ্ঠা:

প্রতিটি ব্যবহারকারীর নিজস্ব ক্রোনট্যাব থাকতে পারে এবং এগুলিতে
ফাইল থাকলেও এগুলি সরাসরি সম্পাদনা করার উদ্দেশ্যে /var/spool/cron/crontabsনয়
intended

এর অধীনে /var/spoolথাকা ফাইলগুলি অস্থায়ী / কার্যকারী হিসাবে বিবেচিত হয়, এজন্যই সম্ভবত তারা আপগ্রেড চলাকালীন মুছে ফেলা হবে, যদিও cronপ্যাকেজের আপগ্রেড স্ক্রিপ্টগুলি ঘনিষ্ঠভাবে দেখার বিষয়টি এতে কিছুটা আলোকপাত করতে পারে।

যাইহোক, আপনার ক্রোন এন্ট্রিগুলি ব্যাকআপ করা বা সেগুলি আপনার হোম ডিরেক্টরিতে কোনও ফাইলে রাখা সর্বদা ভাল অনুশীলন।

আমি ধরে নিয়েছি আপনি crontab -eফ্লাইতে ক্রন্টব ফাইল তৈরি করতে ব্যবহার করছেন । যদি তা হয় তবে আপনি নিজের ক্রন্টব ফাইলের একটি "অনুলিপি" পেতে পারেন crontab -l। একটি "ব্যাকআপ" পেতে একটি ফাইলে পাইপ করুন:

crontab -l > my-crontab

তারপরে আপনি প্রবেশ করতে বা এন্ট্রিগুলি সংশোধন করতে আমার-ক্রন্টব ফাইলটি সম্পাদনা করতে পারেন, এবং তারপরে ক্রন্টবকে দিয়ে "ইনস্টল" করুন:

crontab my-crontab

এটি একই সিনট্যাক্স যাচাই করে crontab -e


7
crontab -l/var/spool/cron/crontabs/$USERবেশিরভাগ ক্ষেত্রেই সেই ফাইলটিতে উদ্ভট অনুমতিগুলির মধ্যে দিয়ে যাওয়া আরও সহজ ।
অলি

1
iptables-saveক্রন করুন। ভাল ...
পার্থিয়ান শট

4
সম্ভবত আমাদের স্বয়ংক্রিয়ভাবে ব্যাক আপ করতে একটি ক্রন্টব লাগানো উচিত> :)?
পাসক্যালভিকুটেন

4
মাধ্যমে খোঁচা /var/spool/cron/crontabsকুশলী যখন আপনি কিউরেট বা একাধিক ব্যবহারকারীদের কাছ থেকে crontabs পরীক্ষা করতে চান।
ধেসান

1
যখন একটি সার্ভারে রহস্য তদন্ত সাথে পরিচিত না হন, এটি সাধারণ sudo grep -rHin "$string" /etc/cron*(যেখানে স্ট্রিং মত কমান্ড হতে পারে docker, lftp, iptables, ইত্যাদিতে ব্যবহারকারী crontabs চেক করতে একটি ভাল ধারণা এটা কি আমাকে এই প্রশ্ন ও উত্তর হতে sudo grep -rHin "$string" /etc/cron* /var/spool/cron*
ব্রুনো ব্রোনস্কি


30

আমি অবশেষে জানতে পেরেছিলাম কেন আমার ক্রোনট্যাবস এবং পোস্টফিক্স ইনস্টলেশন বুটের পরে ভেঙে রেখেছে। এটি সত্যিই বোকামি কারণ তবে ...

আমি র‌্যাম-ড্রাইভ /var/spoolহিসাবে মাউন্ট করেছিলাম tmpfs

বোকা লাগে এবং এটি হয় তবে আমি আমার এসএসডি-র জীবনকাল বাড়াতে পুরানো এসএসডি-টুইটগুলি অনুসরণ করেছি। এমনটি, আমি অন্ধ মাউন্ট /tmp, /var/tmpএবং /var/spoolযেমন tmpfsপ্রতিক্রিয়া চিন্তা ছাড়াই। আমি ভেবেছিলাম /var/spoolএটির মতো /proc/বা /run/এটি সেশনের সময়কালের জন্য কেবল কার্যকর। আমি স্পষ্টত ভুল ছিল।


8
এটি মাউন্ট করা নিরাপদ হওয়া উচিত /tmptmpfs যেমন, কিন্তু না /var/tmpবা /var/spool/tmpঅস্থায়ী সঞ্চয়স্থানের জন্য ব্যবহৃত হয় যা পুনরায় বুট করার পরে হারিয়ে যেতে পারে। /var/tmpঅস্থায়ী সঞ্চয়স্থানের জন্য ব্যবহৃত হয় যা পুনরায় বুটের পরে থাকবে। এবং আপনি আবিষ্কার /var/spoolকরেছেন যে ডেটা প্রক্রিয়া করার জন্য, যা পুনরায় বুট করার পরেও থাকবে।
থোমাস্রুটার


2
আরও মনে রাখবেন যে রাইটিং গণনাটি আর আধুনিক এসএসডিগুলির সাথে কোনও সমস্যা নয়।
থোমাস্রুটার

17

আপনার সিস্টেমে সমস্ত ব্যবহারকারীর সমস্ত ক্রোন জব তালিকা করতে:

for user in $(cut -f1 -d: /etc/passwd)
do
  echo $user
  crontab -u $user -l
done

আপনার সমস্যার বিকল্প হ'ল এগুলি ক্রোন.ডি ফোল্ডারে স্থাপন করা এবং যথাযথ ব্যবহারকারী হিসাবে ক্রোন হিসাবে নির্দিষ্ট করা উচিত:

00 01 * * * user /home/user/user-script.sh

আপনি যদি অন্য ড্রাইভ থেকে ক্রন্টবটি পুনরুদ্ধার করেন তবে এটি কার্যকর হবে না কারণ crontab -uআপনার বর্তমান সিস্টেম থেকে চলছে from
JVE999

যদিও আমি মনে করি এটি এক-লাইনারের মধ্যে এটি ৮০ টিরও কম অক্ষরের সাথে মানানসই এবং কিছুটা পাঠযোগ্য, তবে আমি সাধারণত একটি ফর্ম্যাটে কোড রাখতে পছন্দ করি যাতে কোনও ব্যক্তি অনুলিপি-পেস্ট বা স্ক্রিপ্টে রাখতে পারেন (এবং, কোনও স্ক্রিপ্টে, এটি কোডের এক লাইন হবে না )। সম্পাদনা করার পরামর্শ দিচ্ছে ...
পার্থিয়ান শট

এছাড়াও, আমি এটিকে একটি while read userলুপে রূপান্তরিত করতে চলেছিলাম, যেখানে ব্যবহারকারীর নামটিতে ফাঁকা জায়গা রয়েছে তা পরিচালনা করতে হবে, তবে দৃশ্যত এটি কোনও সমস্যা নয়। ব্যবহারকারীর অক্ষরের খুব সীমিত সেট।
পার্থিয়ান শট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.