• Opret dig
  • Glemt adgangskode

User account menu

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

Snak med

Opret dig!

Af peque | 11.09.2015 08:10

Scripts forskelle

Hjælp generelt
Hej Gruppe.
Jeg har siddet og lavet et script som reelt fungerer på min test maskine.
http://www.linuxin.dk/node/21823

Nu har jeg uploadet til produktionsserveren som så giver mig en fejl i date.

Den eneste forskel jeg kan se er :
Testmaskine
Linux linux-mysql-slave 4.1.0-1-amd64 #1 SMP Debian 4.1.3-1 (2015-08-03) x86_64 GNU/Linux

Produktion:
Linux TTI-DEB01 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt9-2 (2015-04-13) x86_64 GNU/Linux

Kan det være Kernel der mangler noget
  • Log ind eller opret dig for at tilføje kommentarer

Kommentarer6

# 1

9 år 10 måneder siden

Permalink

Indsendt af mrbrown79 den 11. september 2015 kl. 09:51

Permalink

Kan det være Kernel der

#0: Kan det være Kernel der mangler noget

Næppe, men der kan være opsætningsforskelle og forskelle i bash eller de enkelte kommandoer, du bruger.

Prøv at afvikle scriptet med:
bash -x [script]

Og se om du kan lure, hvor det går galt.

Kører du det som cronjob?
  • Log ind eller opret dig for at tilføje kommentarer

# 2

9 år 10 måneder siden

Permalink

Indsendt af peque den 11. september 2015 kl. 10:04

In reply to Kan det være Kernel der by mrbrown79

Permalink

Meningen var det skulle

Meningen var det skulle køre som cronjob, men dette er ikke sat op endnu - har kun testet med at køre det manuelt.


Henter tiden NU'
DATE=`date "+%Y-%m-%d %H:%M:%S"`

Samligner det modtagne fra DB med $DATE
RES=`/usr/bin/dateutils.ddiff -e "$DBGET" "$DATE" -f "%H"`

Og når jeg Echo $DATE
så ser den korrekt ud
2015-09-11 07:59:54

Den fejl jeg reelt får er denne
ddiff: Error: reference DATE must be specified

Og som jeg kan se - er det fordi jeg ikke får hentet den tid fra min database hvor jeg har timestamp. Derfor undrer det mig lidt.
På test har dette virket uden problemer, med bash -x kan jeg se mine parametre bliver hentet men reelt set fejler det i denne kommando:
DBGET=`mysql -u$USER -p$PASSWD -D$DB -s -N -e "SELECT timestamp FROM $DB.$TBL order by timestamp desc limit 1"`

Kører jeg den manuelt i hånden er der ingen problemer så får jeg det rigtige tidsstempel
  • Log ind eller opret dig for at tilføje kommentarer

# 3

9 år 10 måneder siden

Permalink

Indsendt af peque den 11. september 2015 kl. 10:36

Permalink

Hmmmm
Nu har jeg vist fundet

Hmmmm
Nu har jeg vist fundet fejlen

Jeg starter med at hive tabellerne ud af databasen:

#!/bin/bash
# This script detects the age of latest data of tables.
# Rev 001:
# The script detects the age of timestamp in each table in DB
# Created Tabkes in Array and calls the check-script with the
# latest inserted timestamp in table.
# * ./check_age_for_timestamp.sh
# Start with checking the date for 72hours and then 24hours
# And send a email
[ -r /scripts/config.sh ] && . /scripts/config.sh
# Params
TBL=$(mysql -D$DB -u$USER -p$PASSWD -se "SHOW TABLES")

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

done

# EOF

Der skulle det gerne indlæses som et array - og for hver instanse i Arrayet - skal den køre scriptet check_age.sh (Tabelnavn)

Nu kan jeg så se følgende linie kommer under kørsel af -x :
/scripts/check_age.sh TBL1 TBL2 TBL3 TBL4

Meningen er jo lidt at den skal tage for hvert linie i mit array skal den køre seperat - som jeg ser dette - er der for mange parametre med. Hvad går galt i mit lille script

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

# 4

9 år 10 måneder siden

Permalink

Indsendt af mrbrown79 den 11. september 2015 kl. 12:12

Permalink

Hvad går galt i mit

#3: Hvad går galt i mit lille script

Jeg ville prøve uden anførselstegn i for-loopen:

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

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

# 5

9 år 10 måneder siden

Permalink

Indsendt af peque den 11. september 2015 kl. 12:16

Permalink

Tak - Det havde jeg nu

#4:
Tak - Det havde jeg nu ikke lige tænkt på det var dem der drillede!

Det reddede sgu min dag.
:-)
  • Log ind eller opret dig for at tilføje kommentarer

# 6

9 år 10 måneder siden

Permalink

Indsendt af mrbrown79 den 11. september 2015 kl. 13:58

Permalink

Det reddede sgu min

#5: Det reddede sgu min dag.

Super! :)
  • Log ind eller opret dig for at tilføje kommentarer

Svar søges

llumos Unix-operativsystem, 0
Den er go 0
14. februar = I Love Free Software Day 0
Lokal fil-deling - for de dovne. 0
Linux fra begynder til professionel af O'Reilly 0

Seneste aktivitet

Ubuntu touch 1
Ekstern Blu-ray-brænder, der fungerer med PCLinuxOS 6
Hvad med en afstemming Malar 5
Virtuel maskine? 6
PCLinuxOS 40
den er sjov 3
Reserve kernel og btrfs 3
En snak om Linux-kompatibel software 12
"Intet realistisk alternativ" - mig i r*ven 17
Open source events i danmark? 3
Gode anmeldelser Zorin OS 17.3 8
Open Source-eksperimentet 5
Nulstilling af adgangskode 6
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

© 2025 Linuxin og de respektive skribenter

Oprettet og drevet af nørder siden 2004 !