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
Men kører jeg check_age.sh manuelt og indsætter TBL den skal teste - kommer den korrekt
Hvor går det galt i den automatiske kørsel ?
Updatechannel.sh
check_age.sh
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
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
Kommentarer3
der desværre kommer ud
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?
@Frogmaster.Uha - nu skal
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!
Doog har jeg et sidste
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-16-starting-crashing/