• Opret dig
  • Glemt adgangskode

User account menu

  • Artikler
  • Forside
  • Forum
  • Nyheder
  • Log ind
Hjem
LinuxIN.dk

Snak med

Opret dig!

Af peque | 14.12.2017 21:14

Bash script problemer

Hjælp generelt
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
  • Log ind eller opret dig for at tilføje kommentarer

Kommentarer3

# 1

7 år 6 måneder siden

Permalink

Indsendt af frogmaster den 15. december 2017 kl. 17:14

Permalink

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?
  • Log ind eller opret dig for at tilføje kommentarer

# 2

7 år 6 måneder siden

Permalink

Indsendt af peque den 17. december 2017 kl. 15:50

Permalink

@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!

  • Log ind eller opret dig for at tilføje kommentarer

# 3

7 år 6 måneder siden

Permalink

Indsendt af frogmaster den 17. december 2017 kl. 18:26

Permalink

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-16-starting-crashing/
  • Log ind eller opret dig for at tilføje kommentarer

Svar søges

den er sjov 0
llumos Unix-operativsystem, 0
Den er go 0
14. februar = I Love Free Software Day 0
Lokal fil-deling - for de dovne. 0

Seneste aktivitet

"Intet realistisk alternativ" - mig i r*ven 17
Open source events i danmark? 3
Virtuel maskine? 4
Gode anmeldelser Zorin OS 17.3 8
Open Source-eksperimentet 5
En snak om Linux-kompatibel software 7
Nulstilling af adgangskode 6
PCLinuxOS 27
Ingen Mint 5
Linux App Store Flathub når 3 milliarder downloads 2
Digitaliseringsministeriet sætter gang i pilotprojekt om digital suverænitet 3
Mest sikker webbrowser 5
Firefox 2
Privatbeskeder 7
Backup/synkronisering? 3
BigLinux 5
Chatgpt satire 1
Læsning af databasefil i Firefox 2
Vanilla OS 15
Pepsi Challenge 4

© 2025 Linuxin og de respektive skribenter

Oprettet og drevet af nørder siden 2004 !