


Adakah anda tahu beberapa sebab mengapa tugas berjadual crontab tidak dilaksanakan?
Mar 09, 2024 am 09:49 AMRingkasan beberapa sebab mengapa tugas berjadual crontab tidak dilaksanakan
Kemas kini: 9 Januari 2019 09:34:57 Penulis: Harapan di Padang
Artikel ini terutamanya meringkaskan dan memperkenalkan kepada anda beberapa sebab mengapa tugasan berjadual crontab tidak dilaksanakan Ia juga menyediakan penyelesaian kepada setiap dorongan yang mungkin Ia mempunyai rujukan dan nilai pembelajaran tertentu untuk rakan sekerja yang menghadapi masalah ini editor untuk belajar bersama
Mukadimah
Baru-baru ini, saya menghadapi beberapa masalah di tempat kerja Tugasan yang dijadualkan crontab tidak dilaksanakan Kemudian, apabila saya mencari dalam talian, saya mendapati bahawa Internet terutamanya menyebut 5 pencetus ini.
Servis 1crond belum dimulakancrontab bukan fungsi kernel Linux, tetapi bergantung pada perkhidmatan crond Perkhidmatan ini boleh dimulakan atau dihentikan. Jika ia berhenti, ia akan menjadi sukar untuk melaksanakan sebarang tugas yang dijadualkan Penyelesaiannya adalah untuk membukanya:
crond
atau
service crond start
Jika ia menggesa bahawa arahan crond tidak wujud, ia mungkin telah dipadamkan bukan sahaja di bawah CentOS melalui arahan ini:
yum -y install crontabs
2 Isu kebenaran
Contohnya: skrip tidak mempunyai kebenaran pelaksanaan x, penyelesaian:
Kurangkan kebenaran pelaksanaan, atau gunakan bashabc.sh untuk melaksanakan
Ada kemungkinan juga pengguna yang mempunyai tugas crontab tidak mempunyai kebenaran menulis untuk direktori tertentu, dan ia juga akan gagal
3 masalah laluan
Sesetengah arahan dilaksanakan seperti biasa dalam shell, tetapi sentiasa gagal apabila dilaksanakan dalam crontab. Mungkin sh yang digunakan oleh crontab tidak mengenali laluan dengan betul Contohnya: log masuk ke shell sebagai root dan laksanakan /root/test.sh
./test.sh
Itu sahaja. Dan skrip ini tidak akan ditemui dalam crontab, contohnya, tulis sepenuhnya:
/root/test.sh
4Masalah perbezaan masa
Disebabkan perbezaan masa antara pelayan dan klien, masa crontab adalah berdasarkan masa pelayan.
Masalah jet lag memang menjengkelkan saya sendiri mengalami fenomena ini:
(1) Saya menyediakan skrip pemasaan dan menggunakan arahan tarikh untuk memerhati masa pelayan apabila ia mencapai masa pelaksanaan skrip dan mendapati ia tidak dilaksanakan
(2) Dan saya tetapkan skrip untuk dilaksanakan sekali setiap minit, dan tidak mengapa
Sial, adakah masa pelayan betul? Adakah saya perlu menambah zon waktu yang mana? Jadi saya cuba mengurangkan masa skrip sebanyak 10, 12, atau 8 jam, tetapi ia tidak berjaya.
然而很顯著是時間不一致引起的不執(zhí)行。
最后用如下兩行解決了問題:
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime service crond restart
參考這篇文章:
5變量問題
有時侯命令中富含變量,但crontab執(zhí)行時卻沒有,也會導致執(zhí)行失敗。
驗證后,我的定時腳本test.sh不執(zhí)行不是上述任何一種緣由,雖然我的腳本就一句話:
#!/bin/bash echo 123 >> testFile
我希望通過這些方法來測試我設置的定時腳本起作用了,于是我設置了該腳本每分鐘執(zhí)行一次,而且死活在腳本所在目錄看不到這個文件linux 計劃任務沒執(zhí)行,我自動執(zhí)行
# sh test.sh
卻能看見在腳本所在目錄能看見這個文件
我懷疑是crontab根本沒有執(zhí)行,于是我在crontab中直接添加了
*/1 * * * * echo 123 >> /home/denglinjie/testFile
testFile文件生成了,說明crontab是執(zhí)行了的,那看來是我腳本自身存在問題
最后發(fā)覺,原先是testFile這兒必須寫完整的路徑,我天真的以為testFile會生成在腳本所在的目錄,所以改成了如下方式
#!/bin/bash echo 123 >> /data/denglinjie/testFile
之后就可以了。
雖然路徑是個十分容易出問題的地方,假定在/home/denglinjie目錄下有一個腳本文件test1.sh,之后在該目錄下還有一個腳本文件test2.sh
在test1.sh中執(zhí)行了test2.sh,并且用的是相對路徑,即相對test1.sh所在的路徑。
若果在crontab-e中編輯的時侯,執(zhí)行的方法是
sh/home/denglinjie/test1.sh,當執(zhí)行到調用shtest2.sh的時侯,系統(tǒng)會覺得是從crontab文件所在的目錄去找test2.sharm linux,而且顯然是找不到的,導致執(zhí)行失敗
最開始我想的方式是,我要將我寫的待執(zhí)行的腳本文件以及被調用的其他的腳本和crontab文件放在一個地方,這樣就可以拉,并且失敗了,可能是由于權限問題,我進不去/var/spool/cron目錄。
所以另外一個解決方式就是在執(zhí)行腳本之前先通過cd/home/denglinjie命令步入到腳本所在目錄
------------------------------------------------------------------
近來又發(fā)覺一種新的導致crontab不執(zhí)行的誘因
這兒我要執(zhí)行的是python腳本,我python腳本的目錄為:
/data/denglinjie/work/UpdateModuleSwitch
一開始我的定時任務是這樣寫的:
0 * * * * cd /data/denglinjie/work/UpdateModuleSwitch;python update_switch.py
發(fā)覺到了時間點竟然沒有執(zhí)行,其中update_switch.py的部份內容如下:
import pymongo
就是我的腳本中引入了自己安裝的pymongo,注意,這個pymongo是安裝到了指定的python版本上的
不執(zhí)行緣由:crontab定時任務執(zhí)行的時侯,使用的python不是我的那種python,使用的這個python沒有安裝pymongo,致使import失敗
解決辦法,改成如下方式:
0 * * * * cd /data/denglinjie/work/UpdateModuleSwitch;/data/zhoumi/install_evn/bin/python update_switch.py
指定運行使用的python,這個python早已安裝綁定了pymongo,或則用如下方式:
0 * * * * export PATH=/data/zhoumi/install_evn/bin/:$PATH;cd /data/denglinjie/work/UpdateModuleSwitch;python update_switch.py
由于我的這個python是安裝在我自己的用戶目錄下linux 計劃任務沒執(zhí)行,所以系統(tǒng)找不到這個python,所以只要將我的python也加入到系統(tǒng)PATH環(huán)境變量中就可以了
總結
以上就是這篇文章的全部內容了,希望本文的內容對你們的學習或則工作具有一定的參考學習價值,假如有疑惑你們可以留言交流,感謝你們對本站的支持。
Atas ialah kandungan terperinci Adakah anda tahu beberapa sebab mengapa tugas berjadual crontab tidak dilaksanakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Ringkasan beberapa sebab mengapa tugas berjadual crontab tidak dilaksanakan Masa kemas kini: 9 Januari 2019 09:34:57 Penulis: Harapan di medan ini terutamanya meringkaskan dan memperkenalkan kepada anda beberapa sebab mengapa tugas berjadual crontab tidak dilaksanakan setiap orang Penyelesaian diberikan untuk setiap pencetus yang mungkin, yang mempunyai rujukan dan nilai pembelajaran tertentu untuk rakan sekerja yang menghadapi masalah ini. Pelajar yang memerlukan boleh mengikuti editor untuk belajar bersama-sama: Saya telah menghadapi beberapa masalah di tempat kerja yang dijadualkan tugas tidak dilaksanakan Kemudian, apabila saya mencari di Internet, saya mendapati bahawa Internet terutamanya menyebut lima insentif ini: 1. Perkhidmatan crontab bukan fungsi kernel Linux, tetapi bergantung pada cron.

Bagaimana untuk membaca data Excel menggunakan PyCharm? Langkah-langkahnya adalah seperti berikut: pasang perpustakaan openpyxl, muatkan buku kerja Excel dalam lembaran kerja;

Orange3 ialah alat visualisasi data sumber terbuka dan pembelajaran mesin yang berkuasa Ia mempunyai pemprosesan data yang kaya, analisis dan fungsi pemodelan, menyediakan pengguna dengan penyelesaian perlombongan data dan pembelajaran mesin yang mudah dan pantas. Artikel ini akan memperkenalkan secara ringkas fungsi asas dan penggunaan Orange3, dan menggabungkannya dengan senario aplikasi sebenar dan kes kod Python untuk membantu pembaca menguasai kemahiran penggunaan Orange3 dengan lebih baik. Fungsi asas Orange3 termasuk pemuatan data, prapemprosesan data, pemilihan ciri, penubuhan dan penilaian model, dsb. Pengguna boleh menggunakan antara muka intuitif untuk menyeret dan melepaskan komponen untuk membina proses data dengan mudah. Pada masa yang sama, pemprosesan data dan tugas pemodelan yang lebih kompleks juga boleh diselesaikan melalui skrip Python. Di bawah ini kita akan melalui praktikal

PyCharm ialah persekitaran pembangunan bersepadu Python yang berkuasa yang menyediakan pelbagai fungsi dan alatan untuk membantu pembangun meningkatkan kecekapan. Antaranya, PyInstaller ialah alat yang biasa digunakan yang boleh membungkus kod Python ke dalam fail boleh laku (format EXE) untuk memudahkan berjalan pada mesin tanpa persekitaran Python. Dalam artikel ini, kami akan memperkenalkan cara menggunakan PyInstaller dalam PyCharm untuk membungkus kod Python ke dalam format EXE, dan menyediakan khusus

1. Mula-mula buka pycharm dan masukkan halaman utama pycharm. 2. Kemudian buat skrip python baru, klik kanan - klik baru - klik pythonfile. 3. Masukkan rentetan, kod: s="-". 4. Kemudian anda perlu mengulang simbol dalam rentetan sebanyak 20 kali, kod: s1=s*20 5. Masukkan kod output cetakan, kod: print(s1). 6. Akhir sekali jalankan skrip dan anda akan melihat nilai pulangan kami di bahagian bawah: - diulang 20 kali.

CoreFreq: Pengenalan kepada alat pemantauan frekuensi CPU di bawah Linux Dalam sistem Linux, pemantauan dan pengurusan frekuensi CPU sentiasa menjadi tugas yang agak penting. Dengan memantau kekerapan CPU, kita boleh memahami status operasi CPU dalam masa dan melaraskan kekerapan untuk meningkatkan prestasi atau mengurangkan penggunaan kuasa. Dalam sistem Linux, terdapat banyak alat yang boleh digunakan untuk memantau kekerapan CPU, salah satu alat yang lebih baik ialah CoreFreq. Artikel ini akan memperkenalkan fungsi asas alat CoreFreq dan cara melakukannya

Alat pertanyaan subdomain tapak web termasuk: 1. Whois Lookup: boleh menanyakan maklumat pendaftaran nama domain, termasuk nama subdomain 2. Sublist3r: boleh mengimbas nama subdomain nama domain secara automatik dengan bantuan enjin carian dan alat lain; . DNSdumpster: boleh menanyakan Maklumat seperti nama subdomain, alamat IP dan rekod DNS bagi nama domain 4. Fierce: Anda boleh menanyakan maklumat nama domain melalui pelayan DNS: 5. Nmap; ng; 7. Penggodaman Google.

Golang ialah bahasa pengaturcaraan sumber terbuka yang dibangunkan oleh Google dan digunakan secara meluas dalam pembangunan perkhidmatan bahagian belakang, pengkomputeran awan, pengaturcaraan rangkaian dan bidang lain. Sebagai bahasa yang ditaip secara statik, Golang mempunyai model konkurensi yang cekap dan perpustakaan standard yang berkuasa, jadi ia digemari oleh pembangun. Walau bagaimanapun, dalam pembangunan sebenar, pemaju Golang biasanya perlu menggabungkan bahasa pengaturcaraan lain untuk pembangunan projek untuk memenuhi keperluan senario yang berbeza. PythonPython ialah bahasa pengaturcaraan berorientasikan objek yang ringkas, jelas dan mudah dipelajari.
