কিভাবে ব্যবহারকারী হিসাবে ক্রন্টব চালাবেন: www-ডেটা?


32

আমার এলএএমপি হিসাবে কাজ করার জন্য সেটআপ হয়ে গেছে user:www-dataএবং সমস্ত ফাইল এবং ফোল্ডারগুলি সেই অনুমতি নিয়ে তৈরি হয়েছিল।

আমি @ উবুন্টু হিসাবে ক্রন্টব-এর জন্য সেটআপ করেছি।

সুতরাং আমি crontab -eএই আদেশটি করি এবং ব্যবহার করি :

*/5 * * * * php /var/www/public/voto_m/artisan top >/dev/null 2>&1

মূলত সেই কমান্ডটি নির্দিষ্ট স্থানে ক্যাশে ফাইল তৈরি করে (এতে কোনও সমস্যা নেই) তবে সেই ক্যাশে ফাইলটি ব্যবহারকারী দ্বারা তৈরি করা হয়েছে: ব্যবহারকারীর অনুমতি নেই user:www-dataঅনুমতি not

আমি কীভাবে এটি তৈরি করতে পারি যে এটি ডিফল্টরূপে user:www-dataঅনুমতি নিয়ে ফাইল তৈরি করবে ?
আমি যেতে পারি না এবং chownপ্রতিটি সময় ফাইল পুনরায় তৈরি করা হয়।

ধন্যবাদ।


মনে রাখবেন যে কিছু ক্রন্টব স্ক্রিপ্ট যা www- ডেটা হিসাবে চালিত হয় (উদাহরণস্বরূপ awstats, বা php5সেশনের জন্য) /etc/cron.*ডিরেক্টরিতে অবস্থিত এবং সুতরাং এর মাধ্যমে দৃশ্যমান হয় না crontab -e(এমনকি ব্যবহারকারী www- ডেটা নির্দিষ্ট করার সময়ও )।
স্কিপি লে গ্র্যান্ড গৌরূ

উত্তর:


40

আপনি সিস্টেম ক্রন্টবায় আপনার এন্ট্রি লিখতে পারেন /etc/crontab, যা ব্যবহারকারীকে (সাধারণত রুট, তবে www- ডেটা হতে পারে) হিসাবে চালানোর জন্য নির্দিষ্ট একটি অতিরিক্ত যুক্তি গ্রহণ করে।

আপনার লাইন হয়ে যাবে:

*/5 * * * * www-data php /var/www/public/voto_m/artisan top >/dev/null 2>&1

অথবা আপনি ব্যবহারকারীর www-ডেটা এর ক্রন্টব সম্পাদনা করতে পারেন এর সাথে su:

sudo su -c "crontab -e" www-data

1
প্রকৃতপক্ষে দ্বিতীয় বিকল্পটি উবুন্টুর বেশিরভাগ সংস্করণে কাজ করে না
ব্যবহারকারী 123

দ্বিতীয় বিকল্পটি আমার জন্য 12.04LTS এ কাজ করে। সম্ভবত এটি পরবর্তী সংস্করণগুলিতে নেই?
mivk

1
দ্বিতীয় বিকল্পটি 14.04
dgoosens

পরিচালনার স্বাচ্ছন্দ্যের জন্য, লাইনটি /etc/cron.dবর্ণনামূলক নাম, উদাহরণস্বরূপ , নিজের ফাইলটিতেও স্থাপন করা যেতে পারে /etc/cron.d/artisan
fkraiem

2
দ্বিতীয় বিকল্পের পরিবর্তে এটি চেষ্টা করে দেখুনsudo su -c "crontab -e" www-data -s /bin/bash
লুনফেল

51

আপনি -uকোনও নির্দিষ্ট ব্যবহারকারীর জন্য ক্রন্টব সম্পাদনা করার যুক্তি দিয়ে ক্রোনট্যাবও চালাতে পারেন :

sudo crontab -u www-data -e

এটি 14.04 এ কাজ করে
ডিজিওসেনা

3

ব্যবহারকারী www-ডেটা হিসাবে ক্রন্টব চালাতে আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন:

crontab -u www-data -e

তারপরে আপনি একটি লাইন লিখুন, উদাহরণস্বরূপ প্রতি 15 মিনিটে পিএইচপি ফাইল চালনা করতে:

*/15  *  *  *  * php -f /path_to_cron/cron.php

এটি সংরক্ষণ করার সময়, আপনাকে সম্পাদক জিজ্ঞাসা করবে:

File Name to Write: /tmp/crontab.HMpG7V 

এটি সেখানে সংরক্ষণ করুন, কোনও উদ্বেগ নেই। crontab -eপ্রকৃত ক্রান্তাবের পরিবর্তে একটি ফাইল / টিএমপি-তে খোলে যাতে এটি ত্রুটির জন্য আপনার নতুন ক্রোনট্যাব পরীক্ষা করতে পারে এবং আপনাকে ত্রুটিগুলি দিয়ে আপনার প্রকৃত ক্রোনটাব ওভাররাইট করা থেকে বিরত রাখতে পারে। যদি কোনও ত্রুটি না থাকে তবে আপনার আসল ক্রন্টব আপডেট হবে। যদি ক্রোনটাব -e সরাসরি আপনার প্রকৃত ক্রান্তাবকে সরাসরি লিখেছিল, তবে আপনি আপনার সম্পূর্ণ ক্রোনটাবকে উড়িয়ে দেওয়ার ঝুঁকি ফেলবেন।

আপনার ক্রোনজব চলছে কিনা তা যাচাই করতে আপনি ক্রোন লগগুলি পরীক্ষা করতে পারেন। সাধারণত /var/log/cron.log এ বা নিম্নলিখিত আদেশটি কার্যকর করে:

crontab -u www-data -l

এই একজন আমার জন্য উবুন্টু
ত্রিস্তানবেই

এর আগে 4 বছর আগে উপরে কোড কমান্ডারের দ্বারা সঠিক এবং আরও সংক্ষিপ্তভাবে উত্তর দেওয়া হয়েছিল। আপনি "সুডো" ব্যবহার বাদ দিয়েছেন। এবং ক্রোন লাইনের ফর্ম্যাট সম্পর্কিত অনিরীক্ষিত তথ্য নিক্ষেপ করেছে।
HörmannHH

@ রিচিএইচএইচ, কেন আমি সুডো যুক্ত করব? কে বলেছে যে ব্যবহারকারী ইতিমধ্যে রুট হিসাবে চলছে না? যে কেউ এই কমান্ডটি ব্যবহার করে তার জানার জন্য পর্যাপ্ত জ্ঞান থাকা উচিত যে তাকে যদি কমান্ডটি সুবিধাগুলি দিয়ে চালানোর দরকার হয় তবে এটি সুডো দিয়ে চালাতে হবে, অন্যথায় ভাল স্পর্শ করবেন না .. এবং আপনি আরও সংক্ষেপে বলছেন ...? কোড কমান্ডার সবেমাত্র কমান্ডটি টাইপ করেছেন তবে আর কোনও তথ্য
দেয়নি

.. আপনি যদি এই স্মার্ট হন তবে অন্যের কাজের সমালোচনা না করে আপনি উত্তর দেওয়া শুরু করবেন, সম্ভবত তখন আপনি কিছুটা খ্যাতি পেতে শুরু করেছেন
স্পেসবাইকার

-1

আমি অন্য পদ্ধতি যোগ করতে চাই। অন্যান্য লোকেরা যেমন উল্লেখ করেছে, উবুন্টু (১ 16.০৪ এখানে) এবং www-data crontab বিশ্বাসযোগ্য নয় বলে মনে হচ্ছে (সম্ভবত এটি কোনও সুরক্ষার বিষয়?)

যাইহোক, আমাদের সংস্থায় আমরা কোনও সার্ভারে সমস্ত ক্রোনজব সহজেই অ্যাক্সেসযোগ্য করে রাখতে চাই, যাতে আপনি কোনও কিছুই মিস করবেন না। একই সাথে আমরা সমস্ত কিছু (সত্যই কিছু!) মূল হিসাবে চালাতে চাই না।

সুতরাং আমরা চালাতে

sudo crontab -e 

আপনি সাধারণত হিসাবে, এবং তারপর আমরা হিসাবে কমান্ড নির্দিষ্ট

* * * * * /bin/su - www-data -s /bin/bash -c '/path/to/command'

এটি ক্রোনজবগুলকে রুট ক্রোনজবস ফাইলগুলিতে রাখার সময় /-ডেটা হিসাবে / পাথ / টু / কমান্ড কার্যকর করবে (এবং এটি সর্বদা সঠিকভাবে চলবে)। পাইপ ব্যবহার করে মূল (সর্বোচ্চ সুরক্ষার জন্য) লগফাইলে লিখতে সক্ষম হওয়ার দুর্দান্ত সুবিধা রয়েছে।

মনে রাখবেন যে আমরা আমাদের পছন্দের শেলটি পার করছি, এটি একটি সহজ শেলের জন্য / বিন / এসও হতে পারে (আমরা কেবল পুরো বাশ সক্ষমতা পছন্দ করি)। ডাব্লুউউ-ডেটাতে একটি শেল নির্দিষ্ট করা নেই তাই আপনি এটি ছাড়া ত্রুটি পাবেন। সাধারণত ক্রোন কেবল / বিন / এস দিয়ে কাজ চালায়।

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