নির্দিষ্ট ব্যবহারকারী হিসাবে ক্রোন জব কীভাবে চালানো যায়?


66

আমি আমার মেশিনে একটি নির্দিষ্ট ব্যবহারকারী হিসাবে ক্রোন জব চালাতে চাই। ক্রোন জব হিসাবে চালানোর জন্য আমি কীভাবে ব্যবহারকারীকে নির্দিষ্ট করতে পারি?

ক্রোন জবগুলি একটি সার্ভারে চলবে (উবুন্টু 10.0.4 এ চলছে)। 'ব্যবহারকারীগণ' এমন ব্যবহারকারী যা নির্দিষ্টভাবে সার্ভারের সাইড কার্য সম্পাদনের জন্য তৈরি করা হয়েছিল। এই 'ব্যবহারকারীদের' এর মধ্যে নিম্নলিখিতগুলি রয়েছে:

  • সিস্টেমে লগ ইন করা যায় না
  • নির্দিষ্ট ফোল্ডার / ফাইলগুলিতে অ্যাক্সেস সীমিত রাখুন

উত্তর:


79

ধরে নিই যে আপনি কেবল লগইন করতে পারবেন না এবং এটি ব্যবহারকারীর ক্রোনট্যাবে যুক্ত করতে পারেন, একটি ফাইল এতে রেখে দিন /etc/cron.d। এটি একটি সাধারণ ক্রাউনজব হিসাবে ফর্ম্যাট করা উচিত তবে অতিরিক্ত ক্ষেত্রের সাথে। কমান্ড চালানোর আগে এবং সময় শেষে, ব্যবহারকারীকে রাখুন। আপনার সিস্টেমে ইতিমধ্যে উদাহরণগুলি সন্ধান করতে সক্ষম হওয়া উচিত।

উদাহরণ:

#<timing>   <user> <command>
11 * * * *  root   /usr/lib/command

আমি মনে করি এটি সঠিক উত্তর। আমাকে কয়েকটি উদাহরণ সন্ধান করতে হবে এবং আরও কিছু তদন্ত করতে হবে।
মরফিয়াস

2
আমার কাছ থেকে এক, আপনি যা চান তা করার এটি সর্বোত্তম উপায়। আরও স্পষ্টভাবে / etc / crontab ফাইলটি দেখুন এবং আপনি দেখতে পাবেন যে সময় টেম্পলেট এবং কমান্ডের আগে সেখানে "রুট" লেখা আছে। এর অর্থ হ'ল "রুট" এই কমান্ডগুলি চালায়। কেবল আপনার নিজস্ব সময়সূচী যুক্ত করুন এবং "রুট" এর পরিবর্তে যে কোনও ব্যবহারকারীর ব্যবহার করুন। এছাড়াও, নোট করুন যে আপনি প্রতি ব্যবহারকারী ক্রন্টব্যাব ব্যবহার করেন (যেমন এরিক ডি দ্বারা চাপিত) আপনি সিস্টেমের প্রশস্ত ক্রোনট্যাব (/ etc / crontab এবং /etc/cron.d) এর কার্যকারিতা শিথিল করতে পারেন।
প্যাটকোস সিএসবা

3
আমার অনুমানযোগ্য সমাধানটি হ'ল কেবলমাত্র crontab -u <user> -eসমস্ত কিছু এক জায়গায় রাখা, যা আপনি রুট হিসাবে করতে পারেন। আমি আমার ক্রোন জবগুলিকে ফাংশন অনুসারে গ্রুপ করতে চাই, যদিও কেবল ব্যবহারকারীর পরিবর্তে, সুতরাং এটি আমার পক্ষে অগ্রাধিকারযোগ্য সমাধান।
স্টুয়ার্ট এইচ

41

রুট হিসাবে, ব্যবহারকারীর ক্রোন সম্পাদনা করতে:

crontab -u user1 -e

আপনি আপনার আদেশটি দিয়ে এটিও শুরু করতে পারেন:

su user1 -c foo bar

তবে প্রায়শই, স্ক্রিপ্টগুলি রুট হিসাবে শুরু করার সাথে সাথে নিজের নিজস্ব অ্যাক্সেস হ্রাস করে।


1

আমি কয়েক সপ্তাহ ধরে এটি খুঁজছিলাম এবং এটি শেষ পর্যন্ত কাজ করেছে ...

ব্যবহারকারী 1 হিসাবে আপনার স্ক্রিপ্ট তৈরি করুন

ssh user1@ipaddress
nano hourly-event.sh

কিছু কমান্ড লিখুন

#!/bin/bash
echo "YAY it works" > /home/user1/yay.txt

এটি কার্যকর করা

chmod 755 hourly-event.sh

ব্যবহারকারীর জন্য ক্রন্টব সম্পাদনা করুন

sudo crontab -u user1 -e

নীচে একটি লাইন আপনার স্ক্রিপ্টের দিকে নির্দেশ করুন

# m h  dom mon dow   command
*   *   *   *   *    bash ./hourly-event.sh

প্রস্থান করুন - পরিবর্তনগুলি সংরক্ষণ করুন (সংরক্ষণ করার সময় এটি একটি / টিএমপি ডিরেক্টরি প্রদর্শিত হবে ... ঠিক আছে)

মিনিটের পালাটার জন্য অপেক্ষা করুন

আপনার নতুন তৈরি yay.txt খুলুন

nano /home/user1/yay.txt

আপনার ন্যানো উইন্ডোটির নীচের অংশে নতুন ফাইলটি বললে আপনার এখন "YAY এটি কাজ করে" দিয়ে একটি ন্যানো উইন্ডো খোলা উচিত ... ভাল .. আমি ঠিক জানি না

আপনি ব্যবহারকারীর জন্য আপনার নতুন ক্রন্টব এন্ট্রি চেক করতে পারেন: / ভার / স্পুল / ক্রোন / ক্রন্টাবস / ইউজার 1

শান্তি


0

কখনও কখনও আপনি ব্যবহারকারী তার পরিবেশটি লোড করতে চাইতে পারেন, বিশেষত "rbenv", "এনভিএম" ব্যবহার করার সময়, ঠিক এইভাবে:

0 0 * * * source ~/.bash_profile && cd /opt/app/current && bundle exec ruby ...

(এখানে কমান্ডটি source ~/.bash_profileআপনাকে রুবি বা নোডের পরিবেশকে বোঝায় load

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