Apakah mungkin menggunakan PHP untuk membuat, mengedit, dan menghapus pekerjaan crontab?
Saya tahu cara membuat daftar pekerjaan crontab saat ini dari pengguna Apache:
$output = shell_exec('crontab -l');
echo $output;
Tetapi bagaimana cara menambahkan pekerjaan cron dengan PHP? 'crontab -e' hanya akan membuka editor teks dan Anda harus mengedit entri secara manual sebelum menyimpan file.
Dan bagaimana cara menghapus pekerjaan cron dengan PHP? Sekali lagi Anda harus melakukan ini secara manual dengan 'crontab -e'.
Dengan string pekerjaan seperti ini:
$job = '0 */2 * * * /usr/bin/php5 /home/user1/work.php';
Bagaimana cara menambahkannya ke daftar pekerjaan crontab dengan PHP?
Jawaban:
penggunaan perintah crontab
Begitu,
Hal di atas dapat digunakan untuk membuat dan mengedit / menambahkan asalkan pengguna memiliki izin menulis file yang memadai.
Untuk menghapus pekerjaan:
Juga, perhatikan bahwa apache berjalan sebagai pengguna tertentu dan itu biasanya bukan root, yang berarti tugas cron hanya dapat diubah untuk pengguna apache kecuali diberikan
crontab -u
hak istimewa kepada pengguna apache.sumber
shell_exec('crontab -l')
hanya akan mengembalikan baris terakhir. Saya duluexec('crontab -l', $output)
. Kemudian implode array $ output menjadi string (dengan \ n sebagai perekatnya).system()
,passthru()
,shell_exec()
danexec()
, coba menggunakan panel kontrol yang datang dengan hosting, seperti cPanel atau Plesk.Kami baru-baru ini menyiapkan proyek mini (PHP> = 5.3) untuk mengelola file cron untuk tugas pribadi dan individu. Alat ini menghubungkan dan mengelola file cron sehingga Anda dapat menggunakannya, misalnya per proyek. Tes Unit tersedia :-)
Contoh dari baris perintah:
Contoh dari API:
Mengelola tugas individu dari API:
github: php-crontab-manager
sumber
Periksa cronjob
Tambahkan cronjob
Hapus crontab
Contoh
sumber
crontab -l
\ n'. $ command. '" | crontab -', $ output); Apakah itu benar. Saya tidak mendapatkan crontab untuk www-data "-": 0: kesalahan menit buruk dalam file crontab, tidak dapat menginstal.Ini harus dilakukan
sumber
Saya mencoba solusi di bawah ini
}
kredit untuk: Kelas Crontab untuk Menambah, Mengedit dan Menghapus Cron Jobs
sumber
Anda dapat mencoba menimpa
EDITOR
variabel lingkungan dengan sesuatu sepertied
yang dapat mengambil urutan perintah edit di atas input standar.sumber
Tergantung di mana Anda menyimpan crontab Anda:
sumber
Anda dapat meletakkan file Anda ke /etc/cron.d/ dalam format cron. Tambahkan beberapa awalan unik ke nama file Untuk membuat daftar tugas cron khusus skrip, cukup gunakan daftar file dengan awalan unik. Hapus file jika Anda ingin menonaktifkan pekerjaan tersebut.
sumber
Bagus ...
Coba ini untuk menghapus tugas cron tertentu (diuji).
sumber
exit;
setelahheader('Location: ...');
. Selain itu, formulir ini sebenarnya cukup berbahaya, karena dapat menambahkan tugas cron untuk "menghancurkan" server.Cara termudah adalah dengan menggunakan perintah shell_exec untuk menjalankan skrip bash, dengan meneruskan nilai sebagai parameter. Dari sana, Anda dapat memanipulasi crontab seperti yang Anda lakukan di skrip non-interaktif lainnya, dan juga memastikan bahwa Anda memiliki izin yang benar dengan menggunakan sudo dll.
Lihat ini, Crontab tanpa crontab -e , untuk info lebih lanjut.
sumber
Selain crontab, Anda juga dapat menggunakan antrean tugas mesin aplikasi Google . Ini memiliki kuota gratis yang banyak, cepat, dapat diskalakan, dapat dimodifikasi.
sumber
Sederhana saja Anda dapat menggulung untuk melakukannya, pastikan curl diinstal di server:
untuk memicu setiap menit: * * * * * curl --request POST ' https://glassdoor.com/admin/sendBdayNotification '
menit jam hari bulan minggu
Katakanlah Anda ingin mengirim notifikasi ini 14:15 setiap hari Anda dapat mengubah POST / GET berdasarkan API Anda:
15 14 * * * curl --request POST 'url of ur API'
sumber