Synchronisieren, Backup, Upload, Download
RSYNC
rsync ist das "schweizer Armeemesser" für Backups, synchornisieren und archivieren der Daten. Es ist je nach Verwendung auch schneller als scp im Datentransfer.
Beispiele
Synchronisieren über anderen SSH Port entfernter Server mit lokalem Verzeichnis - beachte: einfache Anführungszeichen
rsync -xaEv -z --progress -e 'ssh -p 8081' user@host:/quelle/ /ziel/
Synchronisieren lokales Verzeichnis mit entfernten Server über SSH - Dateien im Ziel löschen, die nicht in der Quelle sind.
rsync -xav -z --progress --delete --exclude=.DS_Store /quelle/ -e ssh user@host:/ziel/
Synchronisieren ohne löschen im Ziel von 2 lokalen Verzeichnissen
rsync -avc --progress /quelle/* /ziel/
Synchronisieren mit löschen im Ziel von 2 lokalen Verzeichnisse - Beachten Quelle ohne * Parameter
rsync -avc --progress -delete /quelle/ /ziel
Synchronisieren ohne Verzeichnisse wie cache, session, log, tmp usw. als mehrzeiliges Kommando
rsync -avcz --progress --delete \ --exclude 'cache' \ --exclude 'session' \ --exclude 'log' \ --exclude 'report' \ --exclude 'tmp' \ --exclude 'locks' \ -e 'ssh -p 8081' user@host:/quelle/ /ziel/
rsync wichtige Optionen
-a preserver timestamp, permissions, owner, group, symbolic link
-c, --checksum skip based on checksum, not mod-time & size
-v verbose
-z compression
-E Extended Attributes (wichtig bei Mac Dateien)
-x don't cross file boundaries
-n simulation (wichtig)
-r recursive
Rsync 3 für Mac OS installieren über Homebrew
# Testen der aktuelle installierten Version rsync —version # Sofern nicht > 3.0 fahren wir weiter fort. /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" brew install rsync Bash Profile anpassen da im eigenen Verzeichnis echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bash_profile # Infos # http://www.tech-recipes.com/rx/2621/os_x_change_path_environment_variable/ # http://blog.taylormcgann.com/2012/06/13/customize-your-shell-command-prompt/
SCP
Über eine sichere Verbindung Dateien mit einem Server austauschen. Sollte gerade kein FTP Programm zu Hand sein, kann mit SCP zügig Dateien ausgetauscht werden.
scp -rpv user@host:/quelle/ /ziel/
scp -rpEv user@host:/quelle/ /ziel/
DIFF
Mit diff wird nicht gerade synchronisiert - hilft haber Unterschiede der Dateiinhalte fest zu stellen. Änderungen am Code können so schnell erkannt werden
diff -q /quelle/ /ziel/
diff command mehrere Zeilen mit Auschluß
diff -rq -w \ --exclude=*verzeichnis1“ \ --exclude="*report" \ /quelle1/ /quelle2/
Mehrzeilig mit Ausschluß bestimmer Verzeichnisse die keine Relevanz haben.
diff -rq -w \ --exclude="*cache" \ --exclude="*tmp" \ --exclude="*report" \ /quelle/ /ziel/
Finden
Linux > Dot Dateien (.DS_Store) von Mac OS X löschen
find /home/www/ -name .DS_Store -exec /bin/rm -f {} \; -print
Mac OS X > Dot Dateien (.DS_Store)
dot_clean -n
Findet alle Dateien mit Schreibrechte für Alle und legt eine Datei an im Verzeichnis vom aktuellen Benutuzer
find /Directory/ -type f -perm -02 -ls > ~/protokoll.txt
Alle Dateien aus dem Verzeichnis mit all rwx in rx
find ./ -perm -05 -exec chmod 775 {} \;
Findet einen Dateinamen am gesamtem Sytem ohne externe Volumes.
sudo find / -name php.ini
Findet Benutzer root und ändere Eigentümer und Gruppe in web-user
find /verzeichnis/ -user root -exec chown web-user:web-user {} \;
Ändere alle Dateien im Verzeichnis mit rwx zu rx
find /verzeichnis/ -perm -05 -exec chmod 775 {} \;
Findet alle Dateien mit Schreibrechte für Alle
find /root/ -type f -perm -02 -ls > /file-perms-write.log
Listet die 10 größten Dateien, nach Größe sortiert
ls -al | sort -r -k 5 | head -10
Entwicklungsumgebung Mac OS X
Paketmanager Homebrew ab 10.8
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
XCode installieren
xcode-select --install
Apache Server - lokalen virtuellen Host mit Domain einrichten. Besser als Aufruf über 127.0.0.1
sudo nano /private/etc/apache2/httpd.conf # Alternativ sudo nano /etc/apache2/extra/httpd-vhosts.conf
Nachfolgende Stellen in der .conf Datei auskommentieren oder anpassen.
# lokaler Host mit lokaler domainServerName local.mydomain.de DocumentRoot /Library/WebServer/public # module aktivieren LoadModule rewrite_module libexec/apache2/mod_rewrite.so LoadModule php7_module libexec/apache2/libphp7.soAllowOverride All
sudo apachectl graceful
Hostfile erweitern
sudo nano /etc/hosts
# lokale domain routen auf lokale ip 127.0.0.1 local.mydomain.de
Mac OS neu starten oder DNS Cache leeren
dscacheutil -flushcache
MySQL Deamon installieren auf Mac hier lesen
cd /usr/local/src curl --remote-name --location https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.12.tar.gz
Shell Script für Mac OS X - XServe Interface ändern. IP's und Domain müssen angepasst werden.
#!/bin/bash defaultInterface="en0" defaultServicenamePrefix="Eth_" defaultGateway="192.198.0.1" defaultMask="255.255.255.240" defaultDNS1="1.1.1.1" defaultDNS2="1.1.1.2" defaultDNS3="1.1.1.3" defaultDomain="meinedomain.de" interfaceNum=1 for ipAddr in 192.198.0.2 192.198.0.3 do serviceName="$defaultServicenamePrefix$interfaceNum" echo "$serviceName: $ipAddr" networksetup -createnetworkservice "$serviceName" $defaultInterface networksetup -setmanual "$serviceName" $ipAddr $defaultMask $defaultGateway networksetup -setdnsservers "$serviceName" $defaultDNS1 $defaultDNS2 $defaultDNS3 networksetup -setsearchdomains "$serviceName" $defaultDomain echo "... done." echo (( interfaceNum+=1 )) done
MySQL
Shell Skripte und Commands
Export - dump aller Datenbank
#!/bin/bash # 1. Liste aller Datenbanken mysql -u 'user' -p 'password' -A --skip-column-names -e "SELECT DISTINCT table_schema FROM information_schema.tables WHERE table_schema NOT IN ('information_schema','mysql')" > ~/ListOfDatabases.txt # 2. Export aller Datenbanken for DB in `cat ~/ListOfDatabases.txt` do echo "mysqldump ${DB}" mysqldump -u 'password' -p 'password' --hex-blob --routines --triggers ${DB} | gzip > /verzeichnis/${DB}.sql.gz & done wait
Mac OS X > MySQL Installation, Verzeichnisse finden (Beachte: Systeme wie Alfresco, die einen eigenen Mysql Deamon und Verzeichnis installieren)
MySQL Deamon starten
#Debian 7 /etc/init.d/mysql start
#Mac OS X sudo mysqld_safe # Alternative BINDIR/mysqladmin -u root shutdown BINDIR//mysqladmin -u root start
MySQL dump ohne bestimmte tabellen
mysqldump -u 'root' -p [db_name] --ignore-table=db.log | gzip > ~/[db-name].sql.gz
>MySQL Dump in DB Server neu importieren
gunzip -c ~/db.sql.gz | mysql -u 'root' -p db
Drupal
Kommands für Drupal 7 oder Drupal 8. Immer testen auf Dev Umgebung
# MySQL Drupal 7 ändern der Benutzer ID von nodes UPDATE node SET uid=7 WHERE uid=1; UPDATE node_revisions SET uid=7 WHERE uid=1;
Drupal 7 - url alias ändern in MySQL Tabelle
DELETE QUICK FROM url_alias WHERE dst LIKE ".html_%" AND (language="de" OR language="en")
Text ersetzen im Body Feld Tabelle node_revisions
UPDATE `node_revisions` SET `body` = REPLACE(`body`, "Testmann", "Mustermann");
Datei Pfade in Tabelle filepath ändern und im Body Feld
UPDATE `files` SET `filepath` = REPLACE(`filepath`, "sites/vorher.de/files/", "sites/nacher.de/files/"); UPDATE `node_revisions` SET `body` = REPLACE(`body`, "sites/vorher.de/files/", "sites/nachher.de/files/");
Shopware 5
Root Verzeichnis von Shopware wechseln
# Config Datei mit Datenbank Access anpassen
nano config.php
# Befehle der Showare Console
bin/console
# Caches löschen
bin/console sw:cache:clear
# Sessions löschen
bin/console sw:session:cleanup
# Plugins aktive anzeigen
bin/console sw:plugin:list --filter active
# MySQL Update z. B. dev Domain
mysql > UPDATE host='dev.foo.com' FROM s_core_shops
WHERE id=1;
# Debuggen Error 500
nano config.php
<?php return array ( 'db' => array ( 'host' => 'HOST', 'port' => 'PORT', 'username' => 'USER', 'password' => 'PASSWORD', 'dbname' => 'DBNAME', ), 'front' => array( 'showException' => true, 'noErrorHandler' => false, ), //Low-Level PHP-Fehler ab Shopware 5.2.0 'phpsettings' => [ 'display_errors' => 1, ] );
Fehler nach Update oder Installation weiße Seite (White Page) oder Error 500
- Serverumgebung testen mit einer Standardinstallation
- error.log vom Server kontrollieren
- .htaccess Direktriven kontrollieren
- Datei Rechte vegleichen mit einer "Clean Installation"
- Caches löschen
- Caches ggf. von PHP Frameworks löschen
- SSL Zertifkat auf Fehler kontrollieren (da ggf. intern Plugins versuchen https aufzurufen)
- PHP in Debug Modus versetzen
- Plugins deaktivieren
- Themes deaktivieren
- KLIGGS kontaktieren wir lösen das!
Infos
https://community.shopware.com/Shop-Transfer-Live-System-Testumgebung_de...
https://community.shopware.com/Fehlermeldungen-in-Shopware-debuggen_deta...
https://community.shopware.com/Die-Shopware-Core-Tabellen_detail_2081.html
OpenSSL, SSL, TLS
Debug SSL Zertifikat
openssl s_client -connect www.kliggs.de:443 -state -debug
Verbinden über lokalen Proxy Port
ssh -o ProxyCommand='nc -x 127.0.0.1:9150 %h %p' user@host