Jadual Kandungan
1. Fahami crontab
二、使用PHP脚本操作crontab
三、定时任务脚本实践示例
Rumah pembangunan bahagian belakang tutorial php Amalan operasi skrip PHP Linux: melaksanakan tugas berjadual

Amalan operasi skrip PHP Linux: melaksanakan tugas berjadual

Oct 05, 2023 pm 02:19 PM
tugas yang dijadualkan php: skrip

PHP Linux脚本操作实践:实现定时任务

Amalan operasi skrip PHP Linux: Untuk melaksanakan tugas berjadual, contoh kod khusus diperlukan

Apabila membangun dan mengurus aplikasi web, kami selalunya perlu melaksanakan beberapa tugas berjadual untuk mengautomasikan beberapa tugasan yang berulang dan memakan masa, seperti membuat sandaran up data, Jana laporan, dsb. Dalam sistem Linux, kami boleh menggunakan crontab untuk mengurus tugas yang dijadualkan. Artikel ini akan memperkenalkan cara menggunakan skrip PHP untuk mengendalikan tugas berjadual pada sistem Linux dan memberikan contoh kod khusus.

1. Fahami crontab

crontab ialah alat pengurusan tugas berjadual dalam sistem Linux, yang membolehkan pengguna melaksanakan arahan atau skrip tertentu pada selang masa tertentu. Setiap pengguna mempunyai fail crontab, yang menyimpan tugasan berjadual pengguna.

Untuk mengedit dan mengurus fail crontab, anda boleh menggunakan arahan berikut:

crontab -e      # 编辑当前用户的crontab文件
crontab -l      # 显示当前用户的crontab文件内容
crontab -r      # 删除当前用户的crontab文件
Salin selepas log masuk

Format fail crontab adalah seperti berikut:

* * * * * command
Salin selepas log masuk

Antaranya, setiap "*" mewakili tempoh masa, sejumlah lima masa tempoh, menunjukkan minit, jam, dan Tarikh, bulan dan hari dalam seminggu. "perintah" mewakili arahan atau skrip yang akan dilaksanakan.

Sebagai contoh, untuk melaksanakan fail skrip backup.sh pada pukul 12 setiap hari, anda boleh menambah kandungan berikut pada fail crontab: backup.sh,可以将以下内容添加到crontab文件中:

0 12 * * * /path/to/backup.sh
Salin selepas log masuk

这样,backup.sh将会在每天的12点整执行。

二、使用PHP脚本操作crontab

要通过PHP脚本来操作crontab,我们可以使用shell_exec函数来执行Shell命令。下面是一个简单的示例,演示了如何通过PHP脚本来添加一个定时任务:

<?php
$command = 'crontab -l';     // 获取当前用户的crontab文件内容
$crontab = shell_exec($command);

$newTask = '0 12 * * * /path/to/backup.sh';  // 要添加的定时任务
$crontab .= PHP_EOL . $newTask;    // 将新任务追加到之前的任务后面

$command = 'echo "' . $crontab . '" | crontab -';   // 将新的crontab内容写入
shell_exec($command);
?>
Salin selepas log masuk

以上代码首先使用crontab -l命令来获取当前用户的crontab文件内容,然后将新的定时任务追加到之前的任务后面,并通过echo命令将新的crontab内容写入。

类似地,我们可以使用PHP脚本来编辑、删除定时任务,只需要使用不同的Shell命令即可。

三、定时任务脚本实践示例

下面是一个完整的示例,展示了如何通过PHP脚本来实现定时任务的添加、编辑和删除,以及如何执行定时任务:

<?php
$action = $_GET['action'];    // 获取操作类型

if ($action == 'add') {
  $minute = $_POST['minute'];
  $hour = $_POST['hour'];
  $dayOfMonth = $_POST['dayOfMonth'];
  $month = $_POST['month'];
  $weekday = $_POST['weekday'];
  $command = $_POST['command'];

  $newTask = $minute . ' ' . $hour . ' ' . $dayOfMonth . ' ' . $month . ' ' . $weekday . ' ' . $command;
  $command = '/usr/bin/crontab -l';   // 获取当前用户的crontab文件内容
  $crontab = shell_exec($command);
  $crontab .= PHP_EOL . $newTask;
  $command = 'echo "' . $crontab . '" | /usr/bin/crontab -';   // 将新的crontab内容写入
  shell_exec($command);

  echo '定时任务添加成功!';
} elseif ($action == 'edit') {
  $minute = $_POST['minute'];
  $hour = $_POST['hour'];
  $dayOfMonth = $_POST['dayOfMonth'];
  $month = $_POST['month'];
  $weekday = $_POST['weekday'];
  $command = $_POST['command'];

  $oldTask = $_POST['oldTask'];

  $command = '/usr/bin/crontab -l';   // 获取当前用户的crontab文件内容
  $crontab = shell_exec($command);
  $crontab = str_replace($oldTask, '', $crontab);  // 删除原定时任务
  $newTask = $minute . ' ' . $hour . ' ' . $dayOfMonth . ' ' . $month . ' ' . $weekday . ' ' . $command;
  $crontab .= PHP_EOL . $newTask;
  $command = 'echo "' . $crontab . '" | /usr/bin/crontab -';   // 将新的crontab内容写入
  shell_exec($command);

  echo '定时任务修改成功!';
} elseif ($action == 'delete') {
  $task = $_GET['task'];

  $command = '/usr/bin/crontab -l';   // 获取当前用户的crontab文件内容
  $crontab = shell_exec($command);
  $crontab = str_replace($task, '', $crontab);  // 删除指定的定时任务
  $command = 'echo "' . $crontab . '" | /usr/bin/crontab -';   // 将新的crontab内容写入
  shell_exec($command);

  echo '定时任务删除成功!';
} else {
  echo '非法操作!';
}
?>
Salin selepas log masuk

以上示例中,我们通过不同的action参数来执行不同的操作,如添加、编辑和删除定时任务。具体的操作参数在URL或表单中传递,然后通过$_GET$_POSTrrreee

Dengan cara ini, backup .sh akan Ia akan dilaksanakan pada pukul 12 setiap hari.

2. Gunakan skrip PHP untuk mengendalikan crontab

Untuk mengendalikan crontab melalui skrip PHP, kita boleh menggunakan fungsi shell_exec untuk melaksanakan arahan Shell. Berikut ialah contoh mudah yang menunjukkan cara menambah tugas berjadual melalui skrip PHP:

rrreee

Kod di atas mula-mula menggunakan perintah crontab -l untuk mendapatkan kandungan fail crontab pengguna semasa, dan kemudian menambah tugas baru yang dijadualkan dilampirkan pada tugas sebelumnya dan kandungan crontab baharu ditulis melalui perintah echo.

Begitu juga, kita boleh menggunakan skrip PHP untuk mengedit dan memadam tugas yang dijadualkan, hanya gunakan arahan Shell yang berbeza. 🎜🎜3. Contoh praktikal skrip tugas berjadual🎜🎜Berikut ialah contoh lengkap yang menunjukkan cara menambah, mengedit dan memadam tugas berjadual melalui skrip PHP, dan cara melaksanakan tugas berjadual: 🎜rrreee🎜Dalam contoh di atas, kami menggunakan Parameter action yang berbeza digunakan untuk melaksanakan operasi yang berbeza, seperti menambah, mengedit dan memadam tugas yang dijadualkan. Parameter operasi khusus dihantar dalam URL atau borang, dan kemudian diperoleh melalui $_GET atau $_POST. 🎜🎜Perlu diambil perhatian bahawa memandangkan ia melibatkan pelaksanaan arahan Shell, atas sebab keselamatan, kami harus mengesahkan dan menapis input pengguna untuk mengelakkan suntikan kod berniat jahat. 🎜🎜4. Ringkasan🎜🎜Artikel ini memperkenalkan cara menggunakan skrip PHP untuk mengendalikan tugas berjadual dalam sistem Linux, dan menggunakan arahan Shell untuk mengedit, menambah dan memadam tugas berjadual dalam fail crontab. Pada masa yang sama, contoh kod khusus disediakan untuk menunjukkan cara menambah, mengedit dan memadam tugas berjadual melalui skrip PHP dan cara melaksanakan tugas yang dijadualkan. Apabila menggunakannya, anda perlu memberi perhatian kepada keselamatan data dan mengelakkan suntikan kod berniat jahat. 🎜🎜Saya harap artikel ini dapat membantu pembaca yang menggunakan PHP untuk mengendalikan tugas berjadual Linux, dan saya juga berharap pembaca dapat membuat pengubahsuaian dan sambungan yang sesuai mengikut keperluan sebenar. 🎜

Atas ialah kandungan terperinci Amalan operasi skrip PHP Linux: melaksanakan tugas berjadual. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Adakah anda tahu beberapa sebab mengapa tugas berjadual crontab tidak dilaksanakan? Adakah anda tahu beberapa sebab mengapa tugas berjadual crontab tidak dilaksanakan? Mar 09, 2024 am 09:49 AM

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.

Penjadualan tugas berjadual ThinkPHP6: pelaksanaan tugas berjadual Penjadualan tugas berjadual ThinkPHP6: pelaksanaan tugas berjadual Aug 12, 2023 pm 03:28 PM

Penjadualan tugas berjadual ThinkPHP6: pelaksanaan tugas berjadual 1. Pengenalan Dalam proses pembangunan aplikasi web, kita sering menghadapi situasi di mana tugas berulang tertentu perlu dilaksanakan dengan kerap. ThinkPHP6 menyediakan fungsi penjadualan tugas berjadual yang berkuasa, yang boleh memenuhi keperluan tugas berjadual dengan mudah. Artikel ini akan memperkenalkan cara menggunakan penjadualan tugas berjadual dalam ThinkPHP6 dan menyediakan beberapa contoh kod untuk membantu memahami. 2. Konfigurasikan tugas berjadual, buat fail tugas berjadual dan buat koman dalam direktori aplikasi projek.

Python melaksanakan penyegaran halaman automatik dan analisis fungsi tugas berjadual untuk aplikasi pengumpulan pelayar tanpa kepala Python melaksanakan penyegaran halaman automatik dan analisis fungsi tugas berjadual untuk aplikasi pengumpulan pelayar tanpa kepala Aug 08, 2023 am 08:13 AM

Python melaksanakan penyegaran halaman automatik dan analisis fungsi tugas berjadual untuk aplikasi pengumpulan pelayar tanpa kepala Dengan perkembangan pesat rangkaian dan pempopularan aplikasi, pengumpulan data halaman web menjadi semakin penting. Pelayar tanpa kepala adalah salah satu alat yang berkesan untuk mengumpul data halaman web. Artikel ini akan memperkenalkan cara menggunakan Python untuk melaksanakan penyegaran halaman automatik dan fungsi tugas berjadual pelayar tanpa kepala. Pelayar tanpa kepala menggunakan mod operasi penyemak imbas tanpa antara muka grafik, yang boleh mensimulasikan tingkah laku operasi manusia secara automatik, dengan itu membolehkan pengguna mengakses halaman web, mengklik butang dan mengisi maklumat.

Cara menggunakan PHP untuk membangunkan fungsi penyegaran berjadual untuk halaman web Cara menggunakan PHP untuk membangunkan fungsi penyegaran berjadual untuk halaman web Aug 17, 2023 pm 04:25 PM

Cara menggunakan PHP untuk membangunkan fungsi penyegaran berjadual untuk halaman web Dengan perkembangan Internet, semakin banyak laman web perlu mengemas kini data paparan dalam masa nyata. Muat semula halaman dalam masa nyata adalah keperluan biasa, yang membolehkan pengguna mendapatkan data terkini tanpa memuat semula keseluruhan halaman. Artikel ini akan memperkenalkan cara menggunakan PHP untuk membangunkan fungsi muat semula berjadual untuk halaman web dan menyediakan contoh kod. Cara paling mudah untuk melaksanakan muat semula berjadual menggunakan teg Meta ialah menggunakan teg Meta HTML untuk menyegarkan halaman dengan kerap. Dalam HTML&lt;head&gt;

Cara menggunakan tugas berjadual dalam FastAPI untuk melaksanakan kerja latar belakang Cara menggunakan tugas berjadual dalam FastAPI untuk melaksanakan kerja latar belakang Jul 28, 2023 pm 02:22 PM

Cara menggunakan tugas berjadual dalam FastAPI untuk melaksanakan kerja latar belakang Dengan perkembangan pesat aplikasi Internet, banyak aplikasi mempunyai beberapa tugas latar belakang yang perlu dilaksanakan dengan kerap, seperti pembersihan data, penghantaran e-mel, sandaran, dsb. Untuk menyelesaikan masalah ini, kami boleh menggunakan tugas berjadual untuk melaksanakan kerja latar belakang secara automatik. Dalam artikel ini, kami akan memperkenalkan cara menggunakan tugas berjadual dalam rangka kerja FastAPI untuk melaksanakan kerja latar belakang. FastAPI ialah rangka kerja web moden, pantas (berprestasi tinggi) yang digunakan terutamanya untuk membina API. ia mempunyai

Bagaimana untuk melaksanakan penjadualan tugas dan tugas berjadual dalam PHP? Bagaimana untuk melaksanakan penjadualan tugas dan tugas berjadual dalam PHP? May 12, 2023 pm 06:51 PM

Dalam pembangunan web, banyak tapak web dan aplikasi perlu melaksanakan tugas tertentu dengan kerap, seperti membersihkan data sampah, menghantar e-mel, dsb. Untuk mengautomasikan tugasan ini, pembangun perlu melaksanakan penjadualan tugas dan fungsi tugas bermasa. Artikel ini akan memperkenalkan cara melaksanakan penjadualan tugas dan tugasan bermasa dalam PHP, serta beberapa perpustakaan dan alatan pihak ketiga yang biasa digunakan. 1. Penjadualan Tugas Penjadualan tugas merujuk kepada melaksanakan tugasan tertentu mengikut masa atau peristiwa yang ditetapkan. Dalam PHP, pemasa cron atau mekanisme serupa boleh digunakan untuk melaksanakan penjadualan tugas. Biasanya, penjadualan tugas

Cara melaksanakan tugas berjadual dan tugas berkala dalam FastAPI Cara melaksanakan tugas berjadual dan tugas berkala dalam FastAPI Jul 30, 2023 pm 03:53 PM

Cara melaksanakan tugas berjadual dan tugas berkala dalam FastAPI Pengenalan: FastAPI ialah rangka kerja Python moden dan berprestasi tinggi yang memfokuskan pada membina aplikasi API. Walau bagaimanapun, kadangkala kita perlu melaksanakan tugas berjadual dan tugas berkala dalam aplikasi FastAPI. Artikel ini menerangkan cara melaksanakan tugas ini dalam aplikasi FastAPI dan menyediakan contoh kod yang sepadan. 1. Pelaksanaan tugas berjadual menggunakan perpustakaan APScheduler APScheduler ialah fungsi

Penjadualan tugas Spring Boot dan kaedah pelaksanaan tugas berjadual Penjadualan tugas Spring Boot dan kaedah pelaksanaan tugas berjadual Jun 22, 2023 pm 11:58 PM

SpringBoot ialah rangka kerja pembangunan Java yang sangat popular Ia bukan sahaja mempunyai kelebihan pembangunan pesat, tetapi juga mempunyai banyak fungsi praktikal terbina dalam. Antaranya, penjadualan tugas dan tugas berjadual adalah salah satu fungsi yang biasa digunakan. Artikel ini akan meneroka kaedah penjadualan tugas dan pemasaan tugas SpringBoot. 1. Pengenalan kepada penjadualan tugas SpringBoot Penjadualan tugas SpringBoot (TaskScheduling) merujuk kepada melaksanakan beberapa tugas khas pada masa tertentu atau dalam keadaan tertentu.

See all articles