Linux Olası Sorunları, Çözümleri ve Yardımcı Komutlar
Diğer
Sistem saatini "date" komutuyla kontrol ederek yanlış bölgede olması durumunda düzeltmek için
sudo ln -sf /usr/share/zoneinfo/Europe/Istanbul /etc/localtime
Doğru bölgede ancak hala yanlış olması durumunda tarihi manuel ayarlamak için
date -s '2014-12-25 12:34:56'
Ubuntu no-key hatası alınması durumunda
#W: GPG error: https://download.docker.com/linux/ubuntu focal InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 7EA0A9C3F273FCD8
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 7EA0A9C3F273FCD8
Kullanıcının tanımından kaynaklı ssh sonrasında bash yerine dash ile çalışmasını düzeltmek için
chsh -s /bin/bash $(whoami)
OOM Killer tarafından öldürülen uygulamaları görmek için
dmesg -T | egrep -i 'killed process'
Disk Kontrolleri
Tüm Diskteki Mevcut Kullanım ve Limitleri Görmek İçin
df -h
Belirli Bir Adresteki Mevcut Kullanım ve Limitleri Görmek İçin
du -sh <FILE_PATH>
Bellek Kontrolleri
Bellek Bilgileri
cat /proc/meminfo
Mevcut Bellek Miktarı ve Limitleri Görmek İçin
free -g
İşlemci Kontrolleri
Cpu Bilgileri
less /proc/cpuinfo
lscpu
Sadece İşlemci Sayısını Görmek
cat /proc/cpuinfo | grep processor | wc -l
Toplam Thread Sayısını Görmek
ps -eo nlwp | tail -n +2 | awk '{ num_threads += $1 } END { print num_threads }'
cat /proc/sys/kernel/threads-max
Java Uygulamasına Ait Toplam Thread Sayısını Görmek
ps -ef | grep java
#Java'nın id'si aşağıya yazılır, ör: 10057
ps huH p 10057 | wc -l
Dump almak
//jcmd-> JRE'nin altında iken
sudo -u apinizer ./jcmd 26032 Thread.print > ./Thread.dump
sudo -u apinizer ./jcmd 26032 GC.heap_dump ./Heap.dump
Mevcut Kullanıcı İçin İşlem Sayısını Belirlemek
ulimit -Su 30000
Jar İşlemleri
Dosyayı Jar'dan Çıkarmak
jar -xf apinizer-gateway-2.1.2.jar
Dosyayı Jar'lamak
jar -cf apinizer-gateway-2.1.2.jar **
Dosyayı manifest Dosyası ile Birlikte Jar'lamak
/opt/apinizerManager/jre8162linux/bin/jar -cfm apinizer-gateway-2.1.2.jar ./META-INF/MANIFEST.MF **
Dosya İşlemleri
SCP ile Başka Sunucuya Klasör Aktarımı
scp -r /opt/apinizerManager/* <REMOTE_SERVER_USER>@<REMOTE_SERVER_ID>:<PATH_TO_COPY_TO>
tar.gz Dosyasını zip'e Çevirmek İçin
tar xzf jre282linux.tar.gz && zip jre282linux.zip $(tar tf jre282linux.tar.gz)
Açık Dosyaları Görmek
lsof | wc -l
Dosyalarla İlgili Ayarları Görmek
cat /etc/sysctl.conf
// system-wide maximum number of files
cat /proc/sys/fs/file-max
cat /proc/sys/fs/file-nr
En Çok Açık Olan On Dosya Tanımlayıcılarını Görmek
cd /proc
for pid in [0-9]*
do
echo "PID = $pid with $(ls /proc/$pid/fd/ | wc -l) file descriptors"
done | sort -rn -k5 | head | while read -r _ _ pid _ fdcount _
do
command=$(ps -o cmd -p "$pid" -hc)
printf "pid = %5d with %4d fds: %s\n" "$pid" "$fdcount" "$command"
done
En Çok Dosya Açık Tutan İşlemler
lsof -Fnst | awk '
{ field = substr($0,1,1); sub(/^./,""); }
field == "p" { pid = $0; }
field == "t" { if ($0 == "REG") size = 0; else next; }
field == "s" { size = $0; }
field == "n" && size != 0 { print size, $0; }
' | sort -k1n -u | tail -n42 | sed 's/^[0-9]* //'
Firewall İşlemleri
sudo iptables -A PREROUTING -t nat -i ens160 -p tcp --dport 443 -j REDIRECT --to-port 9443
iptables-save > /opt/apinizerManager/iptables.conf
#Aşağıdaki startManager içine yazılır
iptables-restore < /opt/apinizerManager/iptables.conf
max_allowed_packet=500M
lower_case_table_names=1
innodb_log_file_size=2G
Wget İşlemleri
Wget ile Google Drive'dan Dosya İndirme
wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=Adres_Unique_Idsi_yZ8JlXtWwdOQg_5h' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=Adres_Unique_Idsi_yZ8JlXtWwdOQg_5h" -O apinizer.zip && rm -rf /tmp/cookies.txt
Dosya Boyutuna Göre Sıralama
sudo lsof
| grep REG
| grep -v "stat: No such file or directory"
| grep -v DEL
| awk '{if ($NF=="(deleted)") {x=3;y=1} else {x=2;y=0}; {print $(NF-x) " " $(NF-y) } }'
| sort -n -u
| numfmt --field=1 --to=iec
Network İşlemleri
Belirli Bir Port'u Kullanan İşlemi ya da Servisi Görmek
netstat -ltnp | grep -w ':80'
Çalışan Portla
|
Sertifika İşlemleri
Sunucu sertifikasını linux sunucusu üzerinden almak
openssl s_client -showcerts -connect <URL>:443 </dev/null 2>/dev/null|openssl x509 -outform PEM > mycertfile.pem
Jar dosyalı bir uygulamaya sertifika import
/opt/apinizerManager/jre8282linux/jre/bin/keytool -import -trustcacerts -keystore /opt/apinizerManager/jre8282linux/jre/lib/security/cacerts -storepass changeit -alias <CERTIFICATE_ALIAS> -import -file <CERTIFICATE_FILE>
Vi Editör İşlemleri
Vi ve vim ile ilgili tüm komutları yazmak için öncelikle escape tuşuna basılarak komut girme moduna geçilmeli ve bir çoğunda : (iki nokta üst üste) karakteri ile başlanmalı.
Düzenlemeleri kaydetmeden çıkmak için
:q!
Düzenlemeleri kaydederek çıkmak için
:wq
Tümünü Değiştir
:%s/old_word/new_word/g
CURL İşlemleri
#ssl 'li adreslere doğrulama olmadan gidebilmek için -k
#log için -v
#timeout için -m 10
#username gönderip password'ü girdirmek için -u <USERNAME>
#çıktıyı kaydetmek --output response.txt
Soap request atıp cevabını loglamak
curl -D - --header "Content-Type:text/xml;charset=UTF-8" --header "SOAPAction:XXX" -d '<SOAP_BODY_GOES_HERE>' https://api.adres/apigateway/relativepath >> response.txt
Basic auth'lu wsdl adresine erişmek (şifreyi sorcak) ve onu kaydetmek
curl -u username "http://api.address.com?wsdl" --output response.wsdl