Schreiben Sie ein shell-script zu installieren cron-job

Dies ist das erste mal, dass ich Schreibe ein shell-Skript, und ich habe sehr wenig Informationen in der gegebenen Zeitleiste ein. Ich bin zwar mit dem Lesen durch verschiedene tutorials, aber ich dachte, zu Fragen, was ich will, auch hier.

Ich will schreiben Sie ein shell-Skript, das auf jeder Maschine, Bearbeiten Sie die cron-Job, fügen Sie ein neues Skript ausgeführt werden alle 15 Minuten. also im Grunde habe ich um einen Eintrag hinzuzufügen

0,15,30,45 * * * * /home/personal/scripts/cronSqlprocedure.sh

Was will ich in dem shell-script

  • würde es zunächst ändern Sie die Berechtigungen/Rechte Ausführung für cronSqlprocedure.sh
  • Bearbeiten bestehenden cron-job, und fügen Sie diesen neuen Eintrag in es.

Wenn möglich, würde ich gerne schreiben cronSqlprocedure durch das shell-Skript auch, da es erfordert einige Variablen, die möglicherweise varry von system zu system.

export ORACLE_HOME=/opt/app/oracle/product/11.2.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=HEER

Diese Zeilen konfiguriert werden, für jede Maschine in der cronSqlprocedure.sh.

#!/bin/bash
ORACLE_HOME="/opt/app/oracle/product/11.2.0/dbhome_1"
ORACLE_SID="HEER"
ORACLE_USER="USER1"
ORACLE_PASSWORD="USERPASS"

echo "export ORACLE_HOME=$ORACLE_HOME" >> $PWD/sqlcronprocedure.sh
echo "export PATH=\$ORACLE_HOME/bin:\$PATH" >> $PWD/sqlcronprocedure.sh
echo "export ORACLE_SID=$ORACLE_SID" >> $PWD/sqlcronprocedure.sh
echo "rTmpDir=/tmp" >> $PWD/sqlcronprocedure.sh

echo "sqlplus -s $ORACLE_USER@$ORACLE_SID/$ORACLE_PASSWORD  > $rTmpDir/deleteme.txt 2>&1 <<EOF" >> $PWD/sqlcronprocedure.sh
echo "    select 1 from dual;" >> $PWD/sqlcronprocedure.sh
echo "    execute another_script(1000,14);" >> $PWD/sqlcronprocedure.sh
echo "EOF" >> $PWD/sqlcronprocedure.sh

chmod 755 $PWD/sqlcronprocedure.sh

crontab -l > $PWD/sqlcorn.sh
echo "0,15,30,45 * * * * $PWD/sqlcronprocedure.sh" >> $PWD/sqlcorn.sh
crontab $PWD/sqlcorn.sh
  • Seien Sie vorsichtig mit crontab -l - bei einigen Versionen von crontab wird auch eine Bemerkung wie "BEARBEITEN Sie DIESE DATEI NICHT". Sie könnten in der Lage sein, um Ihre crontab /etc/cron.d statt auf diesen Plattformen.
  • Kann Sie sein spezifischer über eine version von crontab -l fügt hinzu, dass die 'Bearbeiten Sie diese Datei nicht' Einschränkung? Es scheint sinnlos; der Zweck der crontab - Befehl ist es, Sie zum Bearbeiten der Einträge in der Datei. Sicher, Sie haben zu füttern, um eine bearbeitete Datei wieder in crontab, aber ...
InformationsquelleAutor Em Ae | 2012-01-31
Schreibe einen Kommentar