Fix rpmdb: Thread died in Berkeley DB library hatası ve çözümü

Fix rpmdb: Thread died in Berkeley DB library hatası ve çözümü

Bazen disk hatalarından dolayı rpmdb database iniz bozulabilir , bunu gidermek için aşağıdaki yöntemi kullanabilirsiniz. Centos üzerinde test edilmiştir.

mkdir /var/lib/rpm/backup
cp -a /var/lib/rpm/__db* /var/lib/rpm/backup/
rm -f /var/lib/rpm/__db.[0-9][0-9]*
rpm –quiet -qa
rpm –rebuilddb
yum clean all

Şimdi rahatlıkla paket kurabilir ya da sisteminizi güncelleyebilirsiniz.

Ayhan ARDA

 

The following signatures were invalid: EXPKEYSIG ED444FF07D8D0BF6 Kali Linux Repository hatası ve çözümü

Kali linux üzerinde paket yüklerken ya da sistemi güncellemeye çalışırken aşağıdaki hatayı alabilirsiniz.

The following signatures were invalid: EXPKEYSIG ED444FF07D8D0BF6 Kali Linux Repository

Çözüm için aşağıdaki komutu çalıştırıp yeni imzaları almalısınız.

root@kali-ayhanarda:/# apt-key adv –keyserver hkp://keys.gnupg.net –recv-keys 7D8D0BF6
Executing: /tmp/tmp.JQGFfA47n9/gpg.1.sh –keyserver
hkp://keys.gnupg.net
–recv-keys
7D8D0BF6
gpg: requesting key 7D8D0BF6 from hkp server keys.gnupg.net
gpg: key 7D8D0BF6: “Kali Linux Repository <devel@kali.org>” 149 new signatures
gpg: Total number processed: 1
gpg: new signatures: 149

Şimdi apt-get update yapabileceksiniz.

Ayhan ARDA

ElasticSearch Unassigned shards hatası ve çözümü

ElasticSearch Unassigned shards hatası ve çözümü

Eğer benim gibi single node cluster kullanıyor iseniz aşağıdaki komutu ssh tan basarak replica sayısını tekrar set edip bahsi geçen hatayı giderebilirsiniz. Tabi ElasticSearch portunuz farklı ise komutta değiştiriniz. Ya da replica sayınızı örneğin 5 ten 4  indirdiyseniz number of replicas bölümünden sisteminize uygun olacak şekilde değiştiriniz.

curl -XPUT ‘localhost:9200/_settings’ -d ‘
{
“index” : {
“number_of_replicas” : 0
}
}’

Ayhan ARDA

Ubuntu 16.04.4 LTS RunDeck Kurulumu

Ubuntu 16.04.4 LTS RunDeck Kurulumu

Java kurarak başlıyoruz,  komutları sırası ile giriniz.

dpkg –add-architecture i386

apt-get install openjdk-8-jdk

Rundeck ‘i indiriyoruz.

wget http://download.rundeck.org/deb/rundeck_2.10.8-1-GA_all.deb

Rundeck i kuruyoruz.

dpkg -i rundeck_2.10.8-1-GA_all.deb

/etc/rundeck/framework.properties ve /etc/rundeck/rundeck-config.properties dosyalarında grails.serverURL=http://localhost:4440 yazan bölümleri grails.serverURL=http://SUNUCU-IP-ADRESI:4440 ile değiştiriyoruz.

nano /etc/rundeck/framework.properties

nano /etc/rundeck/rundeck-config.properties

Rundeck servisini başlatıyoruz.

service rundeckd start

Şimdi browser ınız üzerinden http://SUNUCU-IP-ADRESI:4440 ile RunDeck arayüzüne erişebilirsiniz.

Tuning Primer Kurulumu ve Kullanımı

Tuning Primer Kurulumu ve Kullanımı

Tuning Primer bir Mysql Tuner Alternatifi , aşağıdaki komutları sırası ile dosyasını indirip çalıştırabilirsiniz. Mysql Tuner kadar olmasada yeterli bilgiler mevcut ve kullanmaya değer.

[root@ayhanarda ~]# cd /usr/local/bin

[root@ayhanarda bin]# wget https://launchpadlibrarian.net/78745738/tuning-primer.sh

Şimdi sıra çalıştırmaya geldi.

[root@ayhanarda bin]# tuning-primer.sh

Çalıştırıldığında mysql in conf u ile elde ettiği değerleri en iyi optimizasyon için karşılaştırarak size öneriler sunuyor.

Mysql in versiyonundan ne kadar süredir servis verdiğine , açık olduğu son süre içinde kaç query ye cevap verdiğine, anlık bağlantı sayısına , slow query olup olmadığına , cache size ınızın yeterli olup olmadığına , max connections değerinizin anlık değerinizi karşılayıp karşılamadığına , memory kullanımınıza , join lerinize , temp alanınıza , tablo lock sayınıza kadar ölçüp biçip size öneriler sunuyor. Örneğin ben çaqlıştırdımda çıktısı aşağıdaki gibi oldu.

Ancak öncesinde 48 saat kadar mysql servisinizin açık olması daha doğru sonuçlar almanızı sağlayacaktır.

MySQL Version 10.0.34-MariaDB x86_64

Uptime = 1 days 18 hrs 21 min 54 sec
Avg. qps = 1402
Total Questions = 213875408
Threads Connected = 34

SLOW QUERIES
The slow query log is NOT enabled.
Current long_query_time = 10.000000 sec.
You have 8 out of 213875496 that take longer than 10.000000 sec. to complete
Your long_query_time seems to be fine

WORKER THREADS
Current thread_cache_size = 200
Current threads_cached = 103
Current threads_per_sec = 0
Historic threads_per_sec = 0
Your thread_cache_size is fine

MAX CONNECTIONS
Current max_connections = 200
Current threads_connected = 35
Historic max_used_connections = 137
The number of used connections is 68% of the configured maximum.
Your max_connections variable seems to be fine.

No InnoDB Support Enabled!

MEMORY USAGE
Max Memory Ever Allocated : 13.54 G
Configured Max Per-thread Buffers : 8.38 G
Configured Max Global Buffers : 7.79 G
Configured Max Memory Limit : 16.18 G
Physical Memory : 23.36 G
Max memory limit seem to be within acceptable norms

KEY BUFFER
Current MyISAM index space = 1.53 G
Current key_buffer_size = 1.00 G
Key cache miss rate is 1 : 99348
Key buffer free ratio = 54 %
Your key_buffer_size seems to be too high.
Perhaps you can use these resources elsewhere

QUERY CACHE
Query cache is enabled
Current query_cache_size = 800 M
Current query_cache_used = 800 M
Current query_cache_limit = 100 M
Current Query cache Memory fill ratio = 100.00 %
Current query_cache_min_res_unit = 4 K
MySQL won’t cache query results that are larger than query_cache_limit in size

SORT OPERATIONS
Current sort_buffer_size = 1 M
Current read_rnd_buffer_size = 768 K
Sort buffer seems to be fine

JOINS
/usr/local/bin/tuning-primer.sh: line 402: export: `2097152′: not a valid identifier
Current join_buffer_size = 40.00 M
You have had 576657 queries where a join could not use an index properly
You have had 1303 joins without keys that check for key usage after each row
join_buffer_size >= 4 M
This is not advised
You should enable “log-queries-not-using-indexes”
Then look for non indexed joins in the slow query log.

OPEN FILES LIMIT
Current open_files_limit = 138451 files
The open_files_limit should typically be set to at least 2x-3x
that of table_cache if you have heavy MyISAM usage.
Your open_files_limit value seems to be fine

TABLE CACHE
Current table_open_cache = 69120 tables
Current table_definition_cache = 65960 tables
You have a total of 59378 tables
You have 65487 open tables.
The table_cache value seems to be fine

TEMP TABLES
Current max_heap_table_size = 256 M
Current tmp_table_size = 1.46 G
Of 17855233 temp tables, 32% were created on disk
Effective in-memory tmp_table_size is limited to max_heap_table_size.
Perhaps you should increase your tmp_table_size and/or max_heap_table_size
to reduce the number of disk-based temporary tables
Note! BLOB and TEXT columns are not allow in memory tables.
If you are using these columns raising these values might not impact your
ratio of on disk temp tables.

TABLE SCANS
Current read_buffer_size = 1 M
Current table scan ratio = 309 : 1
read_buffer_size seems to be fine

TABLE LOCKING
Current Lock Wait ratio = 1 : 1582
You may benefit from selective use of InnoDB.
If you have long running SELECT’s against MyISAM tables and perform
frequent updates consider setting ‘low_priority_updates=1’

Ayhan ARDA

innodb_log_file_size değişikliği

InnoDb Log File Size Değiştirme

Bu işlem , Innodb de kritik olabilecek bir işlem , dolayısı ile once shutdown mode unun 1 olup olmadığına bakıyoruz , mysql e login olup sorgumuzu çalıştıralım.

mysql> show variables like ‘innodb_fast_shutdown%’;

+———————-+——-+
| Variable_name | Value |
+———————-+——-+
| innodb_fast_shutdown | 2 |
+———————-+——-+
1 row in set (0.00 sec)

Görüldüğü üzere değerimiz 2 , bunu sağlıklı işlem yapabilmek için 1 yapalım.

mysql> SET GLOBAL innodb_fast_shutdown=1;

Tekrar bir önceki komuut çalıştırırsak değerin 1 e döndüğünü görebiliriz.

Şimdi mysql i stop edelim.

[root@ayhanarda root]# service mysql stop

şimdi log dosyalarımızı silmeyelimde farklı bir yere atalım , ne olur ne olmaz.

[root@ayhanarda root]# cd /var/lib/mysql/
[root@ayhanarda mysql]# mv ib_logfile* /tmp/

şimdi my.cnf de ilgili değeri değiştirelim.

[root@ayhanarda mysql]# nano /etc/my.cnf

innodb_log_file_size = 750M
(bunu kendi yapınıza göre ayarlayın , ben 24 gb ram li üzerinde 2000 mysql veritabanı koşan sunucuda çalıştırıyorum , yapacağınız değeri bulmak için mysqltuner kullanmanız faydalı olabilir)

Şimdi mysql i start edelim.

[root@ayhanarda root]# service mysql start

şimdi mysql dizininde iken ls -al | grep ib_* derseniz 2 adet log dosyasının belirlediğiniz değere ayarlandığını görebilirsiniz ya da yine mysql sorgusu ile tüm innodb_log değerlerini görebilirsiniz.

[root@ayhanarda mysql]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 15108
Server version: 10.0.34-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

MariaDB [(none)]> show variables like ‘innodb_log%’;
+——————————-+———–+
| Variable_name | Value |
+——————————-+———–+
| innodb_log_arch_dir | ./ |
| innodb_log_arch_expire_sec | 0 |
| innodb_log_archive | OFF |
| innodb_log_block_size | 512 |
| innodb_log_buffer_size | 8388608 |
| innodb_log_checksum_algorithm | innodb |
| innodb_log_compressed_pages | ON |
| innodb_log_file_size | 786432000 |
| innodb_log_files_in_group | 2 |
| innodb_log_group_home_dir | ./ |
+——————————-+———–+
10 rows in set (0.00 sec)

Ayhan ARDA

WHM/cPanel Tabanlı Sunucularda Tüm Kullanıcıların Cron larını Listeleme

WHM/cPanel Tabanlı Sunucularda Tüm Kullanıcıların Cron larını Listeleme

Binlerce kullanıcılı bir Cpanel kurulu sunucu yönettiğimizi düşünelim , bazen sunucularda öngörmediğimiz durumlar periyodik olarak gerçekleşebilir ve bu da akla bir cron tanımı olabileceği şüphesi uyandırır , böyle durumlarda belli komutlar ile elde ettiğiniz veriler sonucu bazı kullanıcılar üzerinde yoğunlaşırsınız ve bu durumda yapılan işlemlerden biri de o kullanıcın zamanlanmış görevlerini incelemektir , bu hengamenin içinde nasıl tüm kullanıcıların cron tanımlarını tek seferde görebiliriz diye düşünürken aşağıdaki komutla bunu yapabileceğimizi düşündüm , umarım faydalı olur.

for user in $(cut -f1 -d: /etc/passwd); do crontab -u $user -l; done

Ayhan ARDA

The system received an error from the “MySQL” database “mysql”: ER_PASSWORD_NO_MATCH (Can’t find any matching row in the user table) hatası ve çözümü

Genellikle cpanel de mysql veritabanı ve kullanıcısı oluşturmaya çalışırken aşağıdaki hatayı alabilirsiniz.

The system received an error from the “MySQL” database “mysql”: ER_PASSWORD_NO_MATCH (Can’t find any matching row in the user table)

Bu durumda yapmanız gereken şey my.cnf dosyanızda skip-name-resolve satırını kapatmanız.

nano /etc/my.cnf

skip-name-resolve

#skip-name-resolve

service mysql restart

Tekrar mysql oluşturduğunuzda bu hatayı almayacaksınız.

Ayhan ARDA

cutycapt: cannot connect to X server hatası ve çözümü

cutycapt: cannot connect to X server hatası ve çözümü

Bir url listesinin screenshot larını almam gerekti ve bunun için çözüm ararken cutycapt denemeye karar vermiştim ancak bir bsit bir linux vps te x screen olmadığı için ssh tan komutu çalıştırdığımda “cutycapt: cannot connect to X server” hatası aldım. Tabi cahillik olsa gerek hızlıc bir çok deneysel çözüm denedim ancak hatadan kurtulmanın en kolay çözümü benim için xvfb kurmaktan geçti.

root@ayhanarda:/home/arda# cutycapt –url=http://www.ayhanarda.com/ –out=ayhanarda.png
cutycapt: cannot connect to X server

root@ayhanarda:/home/arda# apt-get install xvfb

Yukarıdaki komut ubuntu debian türevleri için , eğer centos redhat kullanıyor iseniz yum install xvfb kullanabilirsiniz. Tabi artık cutycat ı kullanma komutumuz da değişiyor , şimdi artık aşağıdaki komut örneğini kullanabilirsiniz.

root@ayhanarda:/home/arda# xvfb-run –server-args=”-screen 0, 1280x1200x24″ cutycapt –url=http://www.hostrazzi.com –out=hostrazzi.png

bash: column: command not found hatası ve çözümü

Bazen linux te birden fazla dosyayı birleştirip tek dosyada göstermek isteriz ve bunu genelde paste komutu ile yaparız ancak bu komut sütün ayrımı yapmaksızın işlem yapıyor , yani bir dosyadaki satır sayısı az ise sonraki dosyadaki satır sayısı fazla ise onları anlamsız şekilde birleştiriyor , bu durumda column ile ilgili bir komut kullanmamız gerekmekte ancak bu default kurulu gelmiyor ve dolayısı ile komuta eklediğinizde bash: column: command not found hatası alabiliyorsunuz.

Kurulumu için aşağıdaki komutu kullanabilirsiniz.

apt-get install bsdmainutils

Sonrasında komutunuzu tekrar kullanabilirsiniz , hatta dosya merge etme ya da birleştirme ile ilgili örnek komutu aşağıda bulabilirsiniz.

paste dosya1.txt dosya2.txt dosya3.txt dosya4.txt dosya5.txt | column -s $’\t’ -t > nutanix-ayhan.arda.txt

Ayhan ARDA

nutanix

Curl ile Nutanix Vm Listesi Çekme

Nutanix vm lerini Prism Central ile görebilmekteyiz lakin birden fazla nutanix iniz var ise her seferinde bu vm hangi nutanix te diye aramaktan ise tek bir komut ile çekebilirsiniz. Bunun birden fazla yolu var , cmdlet ile çekebilirsiniz , ncli ile çekebilirsiniz , ben bu yazıda curl ile nasıl çekilir onun bilgisini aktaracağım çünkü gün içinde çoğunlukla linux lerde bash arayüzündeyim. Merak konusu olur ise diğer yöntemleri yazabilirim.

Komutumuz aşağıdaki gibi olmalı , curl kurulu olmalı vs hiç demiyorum , kurulu olduğunu varsayıyorum , ama jq kurulumu yapar iseniz komut sağlıklı çalışacaktır. Jq nun amacı json dosyasını gerçek bir json gibi çekebilmek ya da görüntüleyebilmek içindir, böylece grep ile filtreleme yapar iken gerçekten satır aralamış olursunuz. Jq kurmak için muhtemelen ubuntu kullanıyor iseniz apt-get install jq komutu yeterli olacaktır.

root@ayhanarda.com:/home# curl –user admin:SIFREM –insecure -H “Content-Type: application/json” -H “Accept: application/json” https://NUTANIX_IP:9440/PrismGateway/services/rest/v2.0/vms/ > hamveri-ayhanarda.txt && jq ‘.’ hamveri-ayhanarda.txt | grep name
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 33516 0 33516 0 0 9842 0 –:–:– 0:00:03 –:–:– 9843
“name”: “hostrazzi.com-server1”,
“name”: “hostrazzi.com-server2”,
“name”: “hostrazzi.comelkserver”,
“name”: “hostrazzi.com-snmp”,
“name”: “fbi-tor-server”,
“name”: “nsa-hello-server”,
“name”: “emc2-gpu-server”,
“name”: “hostrazzi-sniff-server”,
“name”: “ayhanarda.com-server”,

Ayhan ARDA