• Opret dig
  • Glemt adgangskode

User account menu

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

Snak med

Opret dig!

Af peque | 25.04.2017 09:43

[LØST] Bash script problemer

Hjælp generelt
Hejsa.
Jeg skal lave et script der udgør følgende - skal laves i Bash

1. tjekker et bibliotek for den nyeste fil med navn mysql-bin.XXXXXX <-- hvor XXX er et tal
2. Det tal der står efter . i filnavnet skal plusses med 1 - dvs hvis filen hedder mysql-bin.000022 - skal den komme ud med tallet 000023

Det er for at lave en automatiseret MySQL repair af binlog/replikering - således hvis maskinen stopper uhensigtsmæssigt - så starter den op og reparerer replikeringschannel.

Hvordan kan jeg nemmest lave dette i bash ?
Jeg tænker noget i den stil

OUTPUT=`find mysql-* -type f -printf "%T@ %p\n" | sort -n | cut -d' ' -f 2- | tail -n 1`
NEW=`echo $OUTPUT | rev | cut -d'.' -f 1 | rev `
echo $OUTPUT --> Giver mysql-bin.000022
echo $NEW --> Giver 000022

echo "$DATE - finding the last binlog file"
$NEW=`$NEW + 1`
echo $NEW --> giver stadig 000022
Hvor det skulle være 000023 istedet for som den sidste.
Hvordan kan jeg lave dette ?


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

Kommentarer4

# 1

8 år 2 måneder siden

Permalink

Indsendt af ejvindh den 25. april 2017 kl. 11:49

Permalink

Prøv at udskifte din 6.

Prøv at udskifte din 6. kodelinie med følgende:
let NEW="$(($NEW + 1))"
  • Log ind eller opret dig for at tilføje kommentarer

# 2

8 år 2 måneder siden

Permalink

Indsendt af peque den 26. april 2017 kl. 06:58

In reply to Prøv at udskifte din 6. by ejvindh

Permalink

Hej Ejvind.
Testet og det

Hej Ejvind.
Testet og det fungerer ikke

mysql-bin.000022
000022
06:57:15: - finding the last binlog file
19 <-- Output af $NEW

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

# 3

8 år 2 måneder siden

Permalink

Indsendt af ejvindh den 26. april 2017 kl. 09:29

Permalink

Virker dette bedre? (jeg

Virker dette bedre? (jeg antager at du gerne vil have det ud med de foranstillede '0'-er?)
OUTPUT=`find mysql-* -type f -printf "%T@ %p\n" | sort -n | cut -d' ' -f 2- | tail -n 1`
NEW=`echo $OUTPUT | rev | cut -d'.' -f 1 | rev `
echo $OUTPUT
echo $NEW
echo "$DATE - finding the last binlog file"
NEW=`printf %06d $((10#$NEW+1))`
echo $NEW

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

# 4

8 år 2 måneder siden

Permalink

Indsendt af peque den 28. april 2017 kl. 07:29

Permalink

Hej Ejvind.
Jeg opdagede

Hej Ejvind.
Jeg opdagede lige at jeg har lavet en fejl/ setup er forkert.
Kort beskrivelse:
SRV01 <-- MySQL server 1 - replikerer SRV02
SRV02 <-- MySQL server 2 - replikerer SRV01

Derfor er det egenligt binlog filen på den Server jeg ønsker navnet på.
Derfor har jeg nu lavet det på følgende måde

Script 1
Kaldes fra SRV02
HOST=192.168.0.16
DB=TestSetup
CHANNEL=testb
DATE="`date +%D_%R:%S`:"
LOG=/var/log/$DATE-replcheck.log

# Starting script
echo "$DATE Moving to MySQL Dir" >> $LOG
cd /var/lib/mysql
echo "$DATE searching for newest Mysql-bin file" >> $LOG
OUTPUT=`ssh $HOST /script/binlog.sh`
FILE=`echo $OUTPUT | rev | cut -d'/' -f 1 | rev `
echo "Newest binlog file from $HOST is: $FILE"

echo "$DATE - Stop, edit and restart MySQL Replication Channel"
mysql -u root -pXXXXX -e "stop slave for channel '$CHANNEL';"
mysql -u root -pXXXXX -e "CHANGE MASTER TO MASTER_LOG_FILE='$FILE',MASTER_LOG_POS=0 for channel '$CHANNEL';"
mysql -u root -pXXXXX -e "start slave for channel '$CHANNEL';"
echo "$DATE Replicationchannel changed" >> $LOG

Scriptet der kaldes fra SRV02 på SRV01:

# Static param
find /var/lib/mysql/mysql-* -type f -printf "%T@ %p\n" | sort -n | cut -d' ' -f 2- | tail -n 1


Sådanne har jeg fået løst problemet således den automatisk retter Replikeringschannel til
  • 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

Gode anmeldelser Zorin OS 17.3 5
En snak om Linux-kompatibel software 7
Nulstilling af adgangskode 6
Virtuel maskine? 2
PCLinuxOS 27
Open Source-eksperimentet 3
"Intet realistisk alternativ" - mig i r*ven 15
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
Linuxin er nu migreret til Drupal 11 13

© 2025 Linuxin og de respektive skribenter

Oprettet og drevet af nørder siden 2004 !