• 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 8 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 8 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 8 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 7 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

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
Deaktiverer alle AI-funktioner i Firefox Web Browser 0

Seneste aktivitet

Mbox mail import til Thunderbird 14
Kopiering til min Samsung telefon 2
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

© 2025 Linuxin og de respektive skribenter

Oprettet og drevet af nørder siden 2004 !