• 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

8 år 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

8 år 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

8 år 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

Kopiering til min Samsung telefon 0
Nu kan man skrive private beskeder 0
KDE overgår indsamlingsmålet for 2025 med rekordstor støtte fra lokalsamfundet 0
Zypper Package Manager brugervejledning til openSUSE brugere og deres derivater 0
KDE Spectacle tilføjer OCR understøttelse for at kopiere tekst direkte fra skærmbilleder 0

Seneste aktivitet

Mbox mail import til Thunderbird 11
FOSS i Færdselsstyrelsen 2
Program ala Dreamweaver 2
Test af forum 5
Kunstig inteligens 1
Flatpak og hvorfor 1
Har brugt GLF OS, en NixOS-baseret distribution lavet i Frankrig. 2
Crontab 2
[ LØST ] Flere genveje på Firefox skrivebordet 5
Linuxin er nu migreret til Drupal 11 15
Dansk distro til software udviklere 3
Driver til min scanner? 3
Affinity V3 2
copy hvordan 1
Sortering af filer - sort of... 4
Det der ikke må galt gik galt 5
VPN — 8 tests, 1 klar vinder i 2025 3
Lidt nostalgi 1
Forum. 1
BigLinux 1

© 2025 Linuxin og de respektive skribenter

Oprettet og drevet af nørder siden 2004 !