-1
Я пытаюсь написать код, который будет удаленно настроить crontab с помощью сценария оболочки. Но я столкнулся с проблемой с командой echo, поскольку она не может заменить переменные.установка crontab удаленно с использованием сценария оболочки.
Фактический код
#! /usr/bin/ksh
#! /bin/bash
clear
echo -n "" > error.out
echo -n "" > scripts_dir.out
echo -n "" > crontab_check.out
export ORACLE_SID=REPTEST
export ORACLE_HOME=/opt/app/oracle/product/11.2.0_tipical
export PATH=$PATH:$ORACLE_HOME/bin
export TNS_ADMIN=/home/oracle/NIKHIL/apex_oracle_version_changes
export SCRIPTS_DIR=/home/oracle/NIKHIL/Migration_tech_refersh
export REP_USER=repository
export EMAIL_ID="[email protected]ustar.biz"
export DAY=`date +"%m-%d-%Y"`
export HOSTNAME=$1
export SID=$2
export USAGE=$3
export ROLE=$4
create_crontab_entries() {
echo -n "" > ${SCRIPTS_DIR}/crontab_remote_entries/crontab_remote_file_${H_NOFQDN}.${SID}
echo
echo -e "Creating crontab entries for RMAN backups and alert_log script"
echo
mv ${SCRIPTS_DIR}/crontab_remote_entries/crontab_remote_file_${H_NOFQDN}.${SID} ${SCRIPTS_DIR}/crontab_remote_entries/crontab_remote_file_${H_NOFQDN}.${SID}_$DAY
echo -e "(crontab -l 2>/dev/null;echo "0,5,10,15,20,25,30,35,40,45,50,55 * * * * /home/oracle/SCRIPTS/MONITOR/alert_log/ksh/CHECK_LOG_ERRORS.ksh ${SID} > /tmp/check_log_${SID}.log 2>&1") | crontab - " >> ${SCRIPTS_DIR}/crontab_remote_entries/crontab_remote_file_${H_NOFQDN}.${SID}
echo -e "Checking if crontab is enabled for oracle user"
ssh -o 'PreferredAuthentications=publickey' [email protected]${HOSTNAME} "crontab -l" >> crontab_check.out 2>&1
if [ "$?" = "0" ]; then
echo
echo -e "Crontab is enabled for Oracle user.. Creating Crontab entries!!!"
scp -o 'PreferredAuthentications=publickey' ${SCRIPTS_DIR}/crontab_remote_entries/crontab_remote_file_${H_NOFQDN}.${SID} [email protected]${HOSTNAME}:/home/oracle >> crontab_check.out 2>&1
ssh -o 'PreferredAuthentications=publickey' [email protected]${HOSTNAME} "chmod 777 /home/oracle/crontab_remote_file_${H_NOFQDN}.${SID};/home/oracle/crontab_remote_file_${H_NOFQDN}.${SID};rm -f /home/oracle/crontab_remote_file_${H_NOFQDN}.${SID}" >> crontab_check.out 2>&1
Problamatic эхо команд
echo -e "(crontab -l 2>/dev/null;echo "0,5,10,15,20,25,30,35,40,45,50,55 * * * * /home/oracle/SCRIPTS/MONITOR/alert_log/ksh/CHECK_LOG_ERRORS.ksh ${SID} > /tmp/check_log_${SID}.log 2>&1") | crontab - " >> ${SCRIPTS_DIR}/crontab_remote_entries/crontab_remote_file_${H_NOFQDN}.${SID}
Ошибки встречаются во время работы скрипта
Migration_tech_refersh_post_check.ksh: line 275: 1) | crontab - : ambiguous redirect
Пожалуйста, помогите с эхо-команда, которая будет замещать переменные, как и ожидалось.
Попробуйте ускользнуть от второго и третьего '' 'в своем эхо.' Echo \ "0,5,10' и' 2> & 1 \ ")' – pikand
Подсветка синтаксиса - ваш друг ... –