Bash script problemer

peque
Antal: 856
Tilmeldt:
20-04-2005
User is offline
Bash script problemer

Hej Gutter.
jeg sidder og laver noget scripts der skal opretholde nogle replikeringschannel - der desværre kommer ud for diverse strømafbrdelser.
Jeg har lavet følgende:
updatechannels.sh laver en liste over eksisterende tabels in DB
check_age.sh tager seneste tidsstempel fra TABEL og sammenligner med tiden nu
Når jeg kører automatisk får jeg en fejl i kørsel

./updatechannel.sh
mysql: [Warning] Using a password on the command line interface can be insecure.
mysql: [Warning] Using a password on the command line interface can be insecure.
no route to host: unique6
perform7434482unique6
mysql: [Warning] Using a password on the command line interface can be insecure.
no route to host: patcha12
perform7913854patcharawadee12
mysql: [Warning] Using a password on the command line interface can be insecure.
no route to host: unique9
perform7930187unique9
mysql: [Warning] Using a password on the command line interface can be insecure.
no route to host: patcha15
perform8021878patcharawadee15
mysql: [Warning] Using a password on the command line interface can be insecure.
ddiff: Error: reference DATE must be specified

/scripts/check_age.sh: line 22: [: too many arguments
mysql: [Warning] Using a password on the command line interface can be insecure.
no route to host: senna4
perform8717934senna4
mysql: [Warning] Using a password on the command line interface can be insecure.
no route to host:
perform9058660unique12
mysql: [Warning] Using a password on the command line interface can be insecure.
mysql: [Warning] Using a password on the command line interface can be insecure.
no route to host: senna
perform9140449senna
mysql: [Warning] Using a password on the command line interface can be insecure.
no route to host: senna3
perform9179270senna3

Men kører jeg check_age.sh manuelt og indsætter TBL den skal teste - kommer den korrekt

/scripts/check_age.sh perform8021878patcharawadee15
mysql: [Warning] Using a password on the command line interface can be insecure.
no route to host: patcha15
perform8021878patcharawadee15

Hvor går det galt i den automatiske kørsel ?
Updatechannel.sh

[ -r /scripts/config.sh ] && . /scripts/config.sh
# Params
declare -a TBL=$(mysql -D$DB -u$USER -p$PASSWD -se "SHOW TABLES")

for t in ${TBL[@]};
        do
        /scripts/check_age.sh $t
        done

# EOF

check_age.sh

#!/bin/bash
[ -r /scripts/config.sh ] && . /scripts/config.sh
# Param
# Current time now
DATE=`date "+%Y-%m-%d %H:%M:%S"`
# Param from updatechannels.sh
TBL=$1
# Getting timestamp from DB
DBGET=`mysql -u$USER -p$PASSWD -D$DB -s -N -e "SELECT timestamp FROM $DB.$TBL order by timestamp desc limit 1"`
# Return a INT value of seconds
RES=`/usr/bin/dateutils.ddiff -e "$DBGET" "$DATE" -f "%S"`
# Starting with more than 1 hour.
if [ $RES -ge 600 ]
then
        /scripts/gethost.sh $TBL
        echo $TBL
else
        exit
fi
#EOF

Er der nogen der kan fortælle hvorfor denne kommer ved afvikling af updatechannels.sh men ikke når jeg kalder den direkte
Da jeg på ingen måde kan genskabe denne fejl eller se hvor den kommer fra - ved manuel kørsel af scripte


frogmaster
frogmaster's picture
Antal: 3321
Tilmeldt:
20-05-2010
User is offline
der desværre kommer ud

#0: der desværre kommer ud for diverse strømafbrdelser.

Forsyningen i Danmark er stabil, så hvorfor kommer du ud for problemet?

Når der sker en strømafbrydelse, udover de store rimelige sjældne, så skyldes det i mit tilfælde at fx rengøringen har slukket for en forkert kontakt. Det bliver løst med en samtale med rengøringen og et skilt ved kontakten, der høfligt beder dem holde nallerne væk.

Har du overvejet om problemet kan løses med en eller flere UPS?


peque
Antal: 856
Tilmeldt:
20-04-2005
User is offline
@Frogmaster.Uha - nu skal

@Frogmaster.
Uha - nu skal jeg så lige passe på med at sige for meget - MEN dette omhandler skibe - hvor der er nogle gange "blackship" osv.
De har så endda også valgt KUN at have mobilt bredbånd ombord -så det er kun når de er i nærheden af land der er forbindelse.
Jeg har endda fået løst mit problem omkring binlog filer i dette problem ( at der lukkes ned for Windows ved Poweroff og dermed afsluttes MySQL ikke korrekt) men det har jeg løst ved hjælp af Cygwin.
En UPS - tja Det er forelagt men ikke noget man ønsker at tilkøbe!

Men fandt ud af dette problem reelt var med en tom tabel der fejlede.

Doog har jeg et sidste problem. I mit opstartscript for hele dette - starter ejg med at teste om mount er korrekte - derefter tjekker jeg tiden
Men systes ikke jeg kan få mit script til at starte NTP serveren lokalt. scriptdelen ser således ud:

        # Start NTP service (getting the time)
        if [ "${PSCOUNT}" -gt 1 ];
        then
                echo "$DATE Internal Time update Failed" >> $LOGFILE
        else
                ntpdate $NTP >> $LOGFILE
                echo "$DATE Internal Time update OK"  >> $LOGFILE
                echo "$DATE starting NTP Daemon" >> $LOGFILE
                start-stop-daemon --start --quiet --oknodo --pidfile /var/run/ntpd.pid --startas /usr/sbin/ntpd -- -p /var/run/ntpd.pid -g  >> $LOGFILE
        fi

Jeg har prøvet på alle måder at få den NTP daemon startet - også med

/etc/init.d/ntp start
eller
systemctl start ntp

Men når jeg tjekker sså kører NTP daemon ikke :-( så kan jeg udføre de samme kommandoer i konsollen og servicen kører.
Men jeg vil bare rigtig gerne have at der tjekkes for tid således denne server også leverer tid til alle skibe når der er connected via VPN. Da vores tid i denne sammenhæng er det vigtigste i forhold til de logninger der foretages!


frogmaster
frogmaster's picture
Antal: 3321
Tilmeldt:
20-05-2010
User is offline
Doog har jeg et sidste

#2: Doog har jeg et sidste problem. I mit opstartscript for hele dette - starter ejg med at teste om mount er korrekte - derefter tjekker jeg tiden
Men systes ikke jeg kan få mit script til at starte NTP serveren lokalt. scriptdelen ser således ud:

Prøv og se om der er noget her du kan bruge:
https://ubuntu101.co.za/ubuntu/fix-ntp-on-ubuntu-1...