01
LIP

Automatyczna naprawa i optymalizacja baz MySQL

Wpisane przez Michał Kowalski w kategoriach Bash, Debian, MySQL, SQL

Do szybkiej i codziennej naprawy i optymalizacji polecam narzędzie mysqlcheck.
Można w tym celu napisać prosty skrypt bashowy:

1
2
#!/bin/bash
mysqlcheck --host=localhost --user=root --password=haslo --all-databases --auto-repair --optimize --silent

08
GRU

Backup za pomocą lftp

Wpisane przez Michał Kowalski w kategoriach Bash, Debian, OS, OpenBSD, Programowanie, lftp

Poniższy skrypt bash’owy tworzy backup plików i baz MySQL w katalogu /home/backup, następnie za pomocą lftp kopiuje spakowane pliki backupu na zdalny serwer FTP.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/bin/bash
set -x

DATE=`date +%Y%m%d` #dzisiejsza data

# katalog w którym lokalnie przechowujemy backup, mozemy tutaj
# takze podac jakikolwiek udzial w sieci lokalnej np. //nas/BACKUP
BACKUP_DIR=/home/BACKUP

#backupy z ilu dni poprzednich maja byc tworzone
DNI_WSTECZ=`date --date '5 day ago' +%Y%m%d`

FTP_HOST='ftp.host.com'
FTP_LOGIN='user'
FTP_PASS='password'

#kasowanie katalogu starszego niz DNI_WSTECZ
rm -rf $BACKUP_DIR/$DNI_WSTECZ
echo "Skasowano $BACKUP_DIR/$DNI_WSTECZ"
mkdir $BACKUP_DIR/$DATE

#echo "/root"
tar cfz $BACKUP_DIR/$DATE/root-$DATE.tar.gz  --exclude /proc/kcore --exclude /tmp --exclude /home --exclude /usr --exclude /var  /

#echo "/usr"
tar cfz $BACKUP_DIR/$DATE/usr-$DATE.tar.gz /usr

#echo "/var"
tar cfz $BACKUP_DIR/$DATE/var-$DATE.tar.gz /var

#echo "/home"
tar cfz $BACKUP_DIR/$DATE/home-$DATE.tar.gz --exclude virtual --exclude BACKUP /home

#backup MySQLa
/usr/bin/mysqldump --password=haslo_do_mysql --user=root --opt --all-databases > $BACKUP_DIR/$DATE/mysql-$DATE.sql

lftp -u ${FTP_LOGIN},${FTP_PASS} ${FTP_HOST} < <EOF
cd backup
mrm -r ${DNI_WSTECZ}
mirror --reverse --verbose --only-newer ${BACKUP_DIR} /backup
quit
EOF

Na końcu lini 37 nie powinno być spacji pomiędzy znakami <