my linux spell book
Często staram się przypomnieć sobie jak brzmiało zaklęcie robiące coś tam. Uważam czytanie manuali za pożyteczne, ale mała ściąga nie zaszkodzi (wpis będzie uaktualniany).
$ mysqldump -u usersql_ssl -p -h some.db.host --ssl-ca=/dev/null -B database_name --quote-names --extended-insert=false --default-character-set=utf8 > database_name.sql
$ sed -i -e "s#co#naco#g" pliki
$ mysqldump -u user01_ssl --password=tajnehaslo --ssl-ca=/dev/null -h db01.host.pl --add-drop-table --quote-names --default-character-set=utf8 --no-create-db baza01 | mysql -u user02_ssl -h db02.host.pl --ssl-ca=/dev/null --database=baza02 --default-character-set=utf8 --password=tajnehaslo
$ find -name "*.py" -exec sed -i -e s#/home/users/user2/#/home/users/user23/#g {} \;
zwiększenie rozmiaru partycji LVM:
# lvextend -L +5G /dev/sys/vservers
„poszerzenie” systemu plików XFS
# xfs_growfs /vservers/
$ svn rm `svn status | awk '{print $2}'|xargs`
skopiowanie pierwszych 512 bajtów zawierających info o patrycjach
# dd if=/dev/sda of=/dev/sdb bs=512 count=1
następnie:
# fdisk /dev/sdb
dajemy WRITE, po to, żeby kernel zauważył partycje.
po przeniesieniu vservera na inną maszynę może okazać się on nie widoczny z zewnątrz. Switch pamięta, do jakiego MAC było przypisane IP vservera, więc należy podać do switcha nową informację:
# arping -s $VSERVER_IP $GATEWAY -I eth0
RPM returns names of installed packages:
# rpm -qa --queryformat "%{NAME}\n"
Fancy upgrade:
# for a in `rpm -qa --queryformat "%{NAME}\n" |grep python`; do poldek --cmd "greedy-upgrade ${a}*"; done
# renice 20 -p `pidof rsync sshd`
# mdadm --assemble --scan --force
$ openssl x509 -noout -in -dates
Reinstall PLD Linux:
for a in `rpm -qa --queryformat "%{NAME}\n" | grep -v kernel `; do poldek --cmd "install ${a} --reinstall"; done
awaryjny ;-) restart
[root@host ~]# echo U > /proc/sysrq-trigger
[root@host ~]# echo S > /proc/sysrq-trigger
[root@host ~]# echo B > /proc/sysrq-trigger
Można także wykonać to z klawiatury:
Ctrl + Alt + PrntScrn + U S B
Uprzedzam: pod łindołsem nie działa ;-))))
A co to jest łindołs? ;)
Przydatne bywają również:
rm -rf `find . -name ’.svn’`
find . -type f -name \*.pyc – print | xargs rm |
usuwanie spamowych maili, które próbuje nasłać pewien DeLiKwEnT
for a in `mailq | grep 'DeLiKwEnT' | awk '{print $3}'`; do exim -Mrm $a; done
znaleźć pliki, które zmieniły się w ciągu ostatnich 24h:
find . -type f -ctime -24 -exec ls -lha {} \;
Znajdź pliki *.jpg które w rzeczywistości NIE są obrazkami:
# for a in `find . -type f -name '*.jpg' -exec file "{}" \; | grep ASCII | awk -F ':' '{print $1}'`; do xz -v $a; done
$ svn st | grep ^? | sed 's/? //' | xargs svn add
$ svn st | grep ^! | sed 's/! //' | xargs svn rm
Generowanie CSR za pomocą OpenSSL:
$ openssl req -new -sha256 -key localhost4096.key -out localhost4096.csr
$ openssl x509 -req -days 3650 -sha256 -in ./localhost4096.csr -signkey ./localhost4096.key -out localhost4096.crt
XFS with Inode B+trees:
# mkfs.xfs -m crc=1 -m finobt=1 /dev/md3
Important: required kernel 3.16 or above. Mounting goes default, no extra options.
usuwanie z macierzy mdadm nie istniejącego już urządzenia; przydatne gdy operator wyjął dysk z serwera, zanim ów dysk został wyrugowany z macierzy:
[root@backup3 ~]# mdadm --manage /dev/md6 --remove detached
mdadm: hot removed 65:33 from /dev/md6
zamiast nazwy urządzenia używamy słowa detached.
zamiast przeszukiwać całą kolejkę exim’a w poszukiwaniu jednego message-id:
# exigrep $message-id /var/log/exim/main.log
lepiej zacząć od:
# exim -Mvh $message-id
powyższe zwróci nagłówki
# exim -Mvb $message-id
powyższe zwróci treść
write whole disk with zeros (0) and try to recover bad sectors:
a = 0;
while [ true ];
do
hdparm --yes-i-know-what-i-am-doing --write-sector $a /dev/sda;
sync;
hdparm --yes-i-know-what-i-am-doing --write-sector $a /dev/sda;
a=`expr $a + 1`;
done
Old Debian – enable service to start while Linux starts:
# update-rc.d nginx enable
named-checkzone -n fail -M fail -i full -m fail linuxadmin.pl db.linuxadmin.pl
Find bad code in web pages:
find -type f -name '*.php' -exec grep -Hi -E "(system|base64|eval|passthru)" {} \; | less
Try to fix bad blocks on hard drive. This will DESTROY ALL YOUR DATA od hdd.
badblocks -svwf /dev/sdi
Generate key and CSR:
openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-384 -out blaszkowski.com.key
openssl req -new -key blaszkowski.com.key -out blaszkowski.com.csr
force time synchro on node witch chrony:
systemctl stop chrony
chronyd -q 'pool pool.ntp.org iburst'
systemctl start chrony
There are several ways to force MySQL with reset root password. After you stop working instance and bind MySQL/MariaDB on one console:
mysqld_safe --skip-grant-tables --skip-networking
you can update password after typing mysql on other one:
UPDATE mysql.user SET Password=PASSWORD('Your:New_PasssWORD'), plugin='' WHERE User='root' AND Host='localhost';
OR
UPDATE mysql.user SET authentication_string=PASSWORD('Your:New_PasssWORD'), plugin='' WHERE User='root' AND Host='localhost';
generate a password:
$ cat /dev/urandom | tr -cd "[:print:]" | head -c `shuf -i 16-32 -n 1` ; echo ""