ما هي الطريقة الصحيحة لتنفيذ أمر cron job كل دقيقة مثلا ؟

بحثت كثيرا و لم أصل إلى الحل، ربما لأني من مناصري windows :)

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

إن كنت من مُستخدمي PHP فالرابط التالي لتنفيذ المهمة عبر PHP:

وأُضيفت أيضاً لإطار العمل Laravel

لتنفيذ برمجية كل دقيقة:

$schedule->call(function() {
    // هذه البرمجية ستُنفذ كل دقيقة
})->everyMinute();

ويمكنك تنفيذها عبر لوحة التحكم أو كتابة الأوامر على الخادم مباشراً

بارك الله فيك، نعم أنا على PHP لكن من دون إطار عمل

استفدت من الموضوع في ترايدنت لكن هل هذا ممكن إذا كان الرابط به بارامترات ؟

نعم ممكن ولكن لن تُمررها كما تُمرر في المُتصفح، لأن تنفيذ التطبيق في هذه الحالة يتم داخلياً وليس عبر مُخدم الويب، ستمرر المُتغيرات للتطبيق كوسائط للتطبيق -كأنك تستخدم الطرفية Terminal- بالشكل التالي:

0 0 1 * * /path/to/yourFile var1=aaaa var2=10 var3=bbb 

وداخل التطبيق (ملف التنفيذ) ستقوم بإستلام الوسائط المُمررة عبر argv$ :

<?php
    var_dump($argv);
?>

ماذا لو أردت أن أنفذ الأمر مباشرة من Cpanel، هل هذا الكود صحيح:

*   *   *   *   *   php -f -q /home/bazzoweb/public_html/rssnews/feed.php
  • يجب أن تحصل على المسار كامل للملف -على حسب الاستضافة أو الخادم- ما كبته أنت يُعتبر مسار كامل، جرب التنفيذ وإختبر عمله :) ولا تنسى تحديد وقت التنفيذ

تم تحديد الوقت: كل دقيقة (* * * * *) و المسار صحيح لكن لا يعمل :( لهذا سـألت إن كان الكود صحيح أم لا..

هل من اقتراحات ؟

عليك معرفة المسار الصحيح ل php مثلا على استضافة لينكس الكود التالي يفي بالغرض:

'/user/bin/php /home/{user}/public_html/{script}.php * * * * *'

وكيف اقوم بتشغيلها في cpanel؟

هل يجب استعمال artisan في الكرون جوب

باستعمال هذا الامر

  • * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1

؟

هكذا ستجدها في الـ cPanel

المسار يكون لموقع الملف على الخادم ستغير على حسب مكان وجود الملف.

لو تطبيق خاص استخدم scheduling في Laravel 5 أسهل وأكثر تحكم.

تفضل حول تضبطها كما في الصورة

هذا شرح عملته لحد سكربتاتي وفيه شرح عن cron job ان شاء الله يفيديك

تم بحمد الله التوصل إلى الحل، الكود كان سليم لكني كنت واضع حماية Anti Bot على السكريبت فقام بمنع الكرون جوب من الوصول إليه..

بارك الله فيك أخي @ahmedsaoud31 و جزاك الله كل خير

و أنت ايضا @ahmed_almalki بورك فيك على تعاونك

حياكم الله.

وفيك الله بارك وأثابك بالمثل وزيادة، الحمد لله أنك توصلت لسبب المُشكلة :)

لم أفهم ماذا تقصد بالـ Anti Bot؟ ممكن لمحة السورس كود لهذه الحماية؟ جزيت خيرا.

/**
* STOPBOTS:
* @USE: PROTECT AGAINT BAD BOTS.
*/
private function StopBots()
{
    $BotsBlackList = array
    (
        '@nonymouse', 'addresses.com', 'ideography.co.uk', 'adsarobot', 'ah-ha', 'aktuelles', 'alexibot', 'almaden', 'amzn_assoc', 
        'anarchie', 'art-online', 'aspseek', 'assort', 'asterias', 'attach', 'atomz', 'atspider', 'autoemailspider', 'backweb', 
        'backdoorbot', 'bandit', 'batchftp', 'bdfetch', 'big.brother', 'black.hole', 'blackwidow', 'blowfish', 'bmclient', 
        'boston project', 'botalot', 'bravobrian', 'buddy', 'bullseye', 'bumblebee ', 'builtbottough', 'bunnyslippers', 'capture', 
        'cegbfeieh', 'cherrypicker', 'cheesebot', 'chinaclaw', 'cicc', 'civa', 'clipping', 'collage', 'collector', 'copyrightcheck', 
        'cosmos', 'crescent', 'custo', 'cyberalert', 'deweb', 'diagem', 'digger', 'digimarc', 'diibot', 'directupdate', 'disco', 
        'dittospyder', 'download accelerator', 'download demon', 'download wonder', 'downloader', 'drip', 'dsurf', 'dts agent', 
        'dts.agent', 'easydl', 'ecatch', 'echo extense', 'efp@gmx.net', 'eirgrabber', 'elitesys', 'emailsiphon', 'emailwolf', 
        'envidiosos', 'erocrawler', 'esirover', 'express webpictures', 'extrac', 'eyenetie', 'fastlwspider', 'favorg', 'favorites sweeper', 
        'fezhead', 'filehound', 'filepack.superbr.org', 'flashget', 'flickbot', 'fluffy', 'frontpage', 'foobot', 'galaxyBot', 'generic', 
        'getbot ', 'getleft', 'getright', 'getsmart', 'geturl', 'getweb', 'gigabaz', 'girafabot', 'go-ahead-got-it', 'go!zilla', 'gornker', 
        'grabber', 'grabnet', 'grafula', 'green research', 'harvest', 'havindex', 'hhjhj@yahoo', 'hloader', 'hmview', 'homepagesearch', 
        'htmlparser', 'hulud', 'http agent', 'httpconnect', 'httpdown', 'http generic', 'httplib', 'httrack', 'humanlinks', 'ia_archiver', 
        'iaea', 'ibm_planetwide', 'image stripper', 'image sucker', 'imagefetch', 'incywincy', 'indy', 'infonavirobot', 'informant', 
        'interget', 'internet explore', 'infospiders',  'internet ninja', 'internetlinkagent', 'interneteseer.com', 'ipiumbot', 'iria', 
        'irvine', 'jbh', 'jeeves', 'jennybot', 'jetcar', 'joc web spider', 'jpeg hunt', 'justview', 'kapere', 'kdd explorer', 
        'kenjin.spider', 'keyword.density', 'kwebget', 'lachesis', 'larbin',  'laurion(dot)com', 'leechftp', 'lexibot', 'lftp', 'libweb', 
        'links aromatized', 'linkscan', 'link*sleuth', 'linkwalker', 'libwww', 'lightningdownload', 'likse', 'lwp','mac finder', 'mag-net', 
        'magnet', 'marcopolo', 'mass', 'mata.hari', 'mcspider', 'memoweb', 'microsoft url control', 'microsoft.url', 'midown', 'miixpc', 
        'minibot', 'mirror', 'missigua', 'mister.pix', 'mmmtocrawl', 'moget', 'mozilla/2', 'mozilla/3.mozilla/2.01', 'mozilla.*newt', 
        'multithreaddb', 'munky', 'msproxy', 'nationaldirectory', 'naverrobot', 'navroad', 'nearsite', 'netants', 'netcarta', 'netcraft', 
        'netfactual', 'netmechanic', 'netprospector', 'netresearchserver', 'netspider', 'net vampire', 'newt', 'netzip', 'nicerspro', 
        'npbot', 'octopus', 'offline.explorer', 'offline explorer', 'offline navigator', 'opaL', 'openfind', 'opentextsitecrawler', 
        'orangebot', 'packrat', 'papa foto', 'pagegrabber', 'pavuk', 'pbwf', 'pcbrowser', 'personapilot', 'pingalink', 'pockey', 
        'program shareware', 'propowerbot/2.14', 'prowebwalker', 'proxy', 'psbot', 'psurf', 'puf', 'pushsite', 'pump', 'qrva', 
        'quepasacreep', 'queryn.metasearch', 'realdownload', 'reaper', 'recorder', 'reget', 'replacer', 'repomonkey', 'rma', 'robozilla', 
        'rover', 'rpt-httpclient', 'rsync', 'rush=', 'searchexpress', 'searchhippo', 'searchterms.it', 'second street research', 'seeker', 
        'shai', 'sitecheck', 'sitemapper', 'sitesnagger', 'slysearch', 'smartdownload', 'snagger', 'spacebison', 'spankbot', 'spanner', 
        'spegla', 'spiderbot', 'spiderengine', 'sqworm', 'ssearcher100', 'star downloader', 'stripper', 'sucker', 'superbot', 'surfwalker', 
        'superhttp', 'surfbot', 'surveybot', 'suzuran', 'sweeper', 'szukacz/1.4', 'tarspider', 'takeout', 'teleport', 'telesoft', 
        'templeton', 'the.intraformant', 'thenomad', 'tighttwatbot', 'titan', 'tocrawl/urldispatcher','toolpak', 'traffixer', 'true_robot', 
        'turingos', 'turnitinbot', 'tv33_mercator', 'uiowacrawler', 'urldispatcherlll', 'url_spider_pro', 'urly.warning ', 'utilmind', 
        'vacuum', 'vagabondo', 'vayala', 'vci', 'visualcoders', 'visibilitygap', 'vobsub', 'voideye', 'vspider', 'w3mir', 'webauto', 
        'webbandit', 'web.by.mail', 'webcapture', 'webcatcher', 'webclipping', 'webcollage', 'webcopier', 'webcopy', 'webcraft@bea', 
        'web data extractor', 'webdav', 'webdevil', 'webdownloader', 'webdup', 'webenhancer', 'webfetch', 'webgo', 'webhook', 
        'web.image.collector', 'web image collector', 'webinator', 'webleacher', 'webmasters', 'webmasterworldforumbot', 'webminer', 
        'webmirror', 'webmole', 'webreaper', 'websauger', 'websaver', 'website.quester', 'website quester', 'websnake', 'websucker', 
        'web sucker', 'webster', 'webreaper', 'webstripper', 'webvac', 'webwalk', 'webweasel', 'webzip', 'wget', 'widow', 'wisebot', 
        'whizbang', 'whostalking', 'wonder', 'wumpus', 'wweb', 'www-collector-e', 'wwwoffle', 'wysigot', 'xaldon', 'xenu', 'xget', 
        'x-tractor', 'zeus' );

    $Check = str_replace($BotsBlackList, '*', strtolower($this->GetEnv('HTTP_USER_AGENT')));

    if(strtolower($this->GetEnv('HTTP_USER_AGENT')) != $Check)
    {
        $this->LogAttempt('Bots Attack');
        die('Bots Attack Stopped !');
    }
}

ألا يمكن للبوت وضع User agent مختلف لمتصفحٍ مثلًا!، معظم البوتات الخبيثة هاته الأيام تفعل هذا.

شكرا لك أخي @ibazzo .

بالنسبة للبوتات @يوسف سيد مختلفة كثيرة و تطورت بشكل مبهر، بنظري أرى أن هذا لا يكفي لسد هته الهجمات و الكود ثقيل على المشروع. الفحص المتعدد لكل طلب لا يجدي نفعا جيداً. هذه القائمة جميلة لو تضيفها مع الهتاكسس لضمان الخفة و الأمان مؤقتا على خادم الأباتشي.

أحسن حل بحكم تجربتي مع مجال أمن المعلومات برمجة سكربت بايثون أو Bash خاص بصد الهجمات يعمل في الخلفية background-process و تقدم له الاضافات مما تحتاجه + برامج iptables .. و csf ..الخ

أيضًا من الحلول القديمة وضع Limit للطلبات لعنوان الـIP، نجد هجمات اليوم من أكثر من جهاز، تشعرك الهجمات أن لا حل لصدها غير عتاد قوي، وبرمجية قوية تستحملها دونما تأثر.

اذا كانت تعمل لتعطيل الهجمات عبر IP فجرب cloudflare أحسن، أو incapsula ..

لم أعد أهتم بهذا، يئستُ كلما أجد حلًا، إن أراد الهجام كسره بسهولة لا يمكن ضمان الطلبات، إلا بحل يضايق المستخدم كأن تتاكد من المتصفح بـJS قبل تحميل المحتوى من الخادم!، أهتم بالبرمجة فقط وربما بعض الحلول إن طلبها العميل، وأضع له خدمة خارجية CloudFlare جيّد نوعًا ما -المجاني منه غير عملي-.

منكم نستفيد،،

انظر ما أمسك هذا الصغير..

28-07-2016 20:21:06 | TYPE: Bots Attack | IP: 64.246.187.42 | DNS: 64.246.187.42 | Agent: Firefox | URL: No URL | Referer: 

في الحقيقة هذه البوتات مسالمة ولطيفة :)، البوتات الخبيثة حقًا التي تهجم على المواقع، مثلًا هجومات حجب الخدمة لن تكون كذلك.