GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menjalankan Cronjobs lebih dari sekali per menit?

Ini skrip bash sederhana yang saya tulis yang dapat digunakan dengan crontab untuk berjalan lebih sering dari 1 menit.

Anda dapat menyimpannya sebagai ~/bin/runEvery.shand lalu di crontab tulis sesuatu seperti ini untuk menjalankan otherScript.sh setiap 5 detik:

*/1 * * * * ~/bin/runEvery.sh 5 otherScript.sh

Ini skripnya:

#!/bin/bash

inputPeriod=$1
runCommand=$2
RUN_TIME=60
error="no"

if [ 'x'"$runCommand" != 'x' ]
then
    if [ 'x'$inputPeriod != 'x' ]
    then
        loops=$(( $RUN_TIME / $inputPeriod ))
        if [ $loops -eq 0 ]
        then
            loops=1
        fi

        for i in $(eval echo {1..$loops})
        do
            $runCommand
            sleep $inputPeriod
        done

    else
        error="yes"
    fi
else
    error="yes"
fi

if [ $error = "yes" ]
then
    echo "runEvery - runs a command every X seconds for a minute"
    echo "Usage: runEvery.sh <# in seconds < 60> <command to run>"
fi

Ini harus dilakukan di tingkat skrip.

// cron.php running every 10 seconds

<?php

$expireTime = time() + 60;
while (time() < $expireTime) {
     // my php logic here

     sleep(10); 
     // sleep for 10 seconds
     // you may change the sleep time to change frequency
}

Linux
  1. Cara Menjalankan Perintah Tunggal Pada Beberapa Sistem Jarak Jauh Sekaligus

  2. Bagaimana Membagi Terminal Menjadi Lebih dari Satu "tampilan"?

  3. Bagaimana menangani lebih dari 10 parameter di shell

  1. Mengapa rand() mengulang angka jauh lebih sering di Linux daripada Mac?

  2. Bagaimana cara mengatur lebih dari 10 perangkat loopback?

  3. cara menyisipkan baris baru jika baris memiliki lebih dari 60 karakter

  1. Jalankan Perintah Sekali Per Baris Input Pipa?

  2. Bagaimana cara mengatur cron untuk menjalankan file hanya sekali pada waktu tertentu?

  3. Bagaimana cara menjalankan beberapa proses Tor sekaligus dengan IP keluar yang berbeda?