centos 7.3 veya 7.4 tabanlı linux sunucusunu merkezi hesaplama yöneticisine bağlarken(freeipa - ipa ) aşağıdaki durum mevcut ise;
SSSD enabled
SSSD service restart was unsuccessful.
Configured /etc/openldap/ldap.conf
Unable to find 'admin' user with 'getent passwd admin@localdomain.net'!
Unable to reliably detect configuration. Check NSS setup manually.
NTP enabled
Configured /etc/
Hata ile karşılasacaksınız. Bu bir bug scientific linux ve redhat de giderilmiş, fakat bu düzeltme centos'a yansımamış gibi görünüyor.
Aksaklığın çözümü;
chmod 600 /etc/sssd/sssd.conf
systemctl restart sssd
[root@cnode002 ~]# ipa-client-install
Discovery was successful!
Client hostname: cnode002.localdomain.net
Realm: localdomain.net
DNS Domain: localdomain.net
IPA Server: headnode.localdomain.net
BaseDN: dc=hpc,dc=localdomain,dc=lan,dc=tr
Continue to configure the system with these values? [no]: yes
Synchronizing time with KDC...
Attempting to sync time using ntpd. Will timeout after 15 seconds
Attempting to sync time using ntpd. Will timeout after 15 seconds
Unable to sync time with NTP server, assuming the time is in sync. Please check that 123 UDP port is opened.
User authorized to enroll computers: admin
Password for admin@localdomain.net:
Successfully retrieved CA cert
Subject: CN=Certificate Authority,O=localdomain.net
Issuer: CN=Certificate Authority,O=localdomain.net
Valid From: 2017-09-23 14:03:23
Valid Until: 2037-09-23 14:03:23
Enrolled in IPA realm localdomain.net
Created /etc/ipa/default.conf
New SSSD config will be created
Configured sudoers in /etc/nsswitch.conf
Configured /etc/sssd/sssd.conf
Configured /etc/krb5.conf for IPA realm localdomain.net
trying https://headnode.localdomain.net/ipa/json
[try 1]: Forwarding 'schema' to json server 'https://headnode.localdomain.net /ipa/json'
trying https://headnode.localdomain.net/ipa/session/json
[try 1]: Forwarding 'ping' to json server 'https://headnode.localdomain.net/i pa/session/json'
[try 1]: Forwarding 'ca_is_enabled' to json server 'https://headnode.hpc.localdomain .lan.tr/ipa/session/json'
Systemwide CA database updated.
Hostname (cnode002.localdomain.net) does not have A/AAAA record.
Missing reverse record(s) for address(es): 10.111.1.2.
Adding SSH public key from /etc/ssh/ssh_host_rsa_key.pub
Adding SSH public key from /etc/ssh/ssh_host_ecdsa_key.pub
Adding SSH public key from /etc/ssh/ssh_host_ed25519_key.pub
Adding SSH public key from /etc/ssh/ssh_host_dsa_key.pub
[try 1]: Forwarding 'host_mod' to json server 'https://headnode.hpc.localdomain.lan. tr/ipa/session/json'
SSSD enabled
SSSD service restart was unsuccessful.
Configured /etc/openldap/ldap.conf
Unable to find 'admin' user with 'getent passwd admin@localdomain.net'!
Unable to reliably detect configuration. Check NSS setup manually.
NTP enabled
Configured /etc/ssh/ssh_config
Configured /etc/ssh/sshd_config
Configuring localdomain.net as NIS domain.
Client configuration complete.
The ipa-client-install command was successful
[root@cnode002 ~]# ls -la /etc/sssd/
total 16
drwx--x--x+ 3 sssd sssd 35 Sep 24 11:26 .
drwxr-xr-x+ 111 root root 8192 Sep 24 11:26 ..
drwx--x--x+ 2 sssd sssd 6 Sep 7 05:18 conf.d
-rw-r--r-- 1 root root 489 Sep 24 11:26 sssd.conf
[root@cnode002 ~]# chmod 600 /etc/sssd/sssd.conf
[root@cnode002 ~]# systemctl restart sssd
[root@cnode002 ~]# id admin
uid=1234000000(admin) gid=1234000000(admins) groups=1234000000(admins)
[root@cnode002 ~]#
[root@cnode002 ~]# systemctl status sssd
● sssd.service - System Security Services Daemon
Loaded: loaded (/usr/lib/systemd/system/sssd.service; enabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/sssd.service.d
└─journal.conf
Active: active (running) since Sun 2017-09-24 11:27:37 +03; 8min ago
Main PID: 2612 (sssd)
CGroup: /system.slice/sssd.service
├─2612 /usr/sbin/sssd -i -f
├─2614 /usr/libexec/sssd/sssd_be --domain hpc.localdomain.lan --uid 0 --gid 0 --debug-to-files
├─2615 /usr/libexec/sssd/sssd_nss --uid 0 --gid 0 --debug-to-files
├─2616 /usr/libexec/sssd/sssd_sudo --uid 0 --gid 0 --debug-to-files
├─2617 /usr/libexec/sssd/sssd_pam --uid 0 --gid 0 --debug-to-files
├─2618 /usr/libexec/sssd/sssd_ssh --uid 0 --gid 0 --debug-to-files
└─2619 /usr/libexec/sssd/sssd_pac --uid 0 --gid 0 --debug-to-files
Sep 24 11:27:37 cnode002 sssd[nss][2615]: Starting up
Sep 24 11:27:37 cnode002 sssd[pac][2619]: Starting up
Sep 24 11:27:37 cnode002 sssd[pam][2617]: Starting up
Sep 24 11:27:37 cnode002 sssd[sudo][2616]: Starting up
Sep 24 11:27:37 cnode002 sssd[ssh][2618]: Starting up
Sep 24 11:27:37 cnode002 sssd_be[2614]: GSSAPI client step 1
Sep 24 11:27:37 cnode002 sssd_be[2614]: GSSAPI client step 1
Sep 24 11:27:37 cnode002 sssd_be[2614]: GSSAPI client step 1
Sep 24 11:27:37 cnode002 sssd_be[2614]: GSSAPI client step 2
Sep 24 11:27:37 cnode002 systemd[1]: Started System Security Services Daemon.
[root@cnode002 ~]#
[root@cnode002 ~]# id admin
uid=1234000000(admin) gid=1234000000(admins) groups=1234000000(admins)
[root@cnode002 ~]#
24 Eylül 2017 Pazar
21 Eylül 2017 Perşembe
nginx godaddy g2 sertifika yüklenmesi
sertifika için istek ve anahtar dosyası üretilir.
openssl req -newkey rsa:2048 -nodes -keyout alanadi.com.key -out alanadi.com.csr
Gerekli onaylama işlemleri tamamlandıktan sonra ssl - Apache indirilir.
gelen dosyalar içinden çıkan crt dosyasını, isim anlaşılabilir olması için;
cp 9b46c7a1a2fef2dc.crt alan-adi.com.crt -iv
alan adıyla birlikte kayıt ederiz.
Kayıt yaptıktan sonra
cat alanadı.com.crt gd_bundle-g2-g1.crt >alanadi.com.chained.crt
ve bir dosyanin içerisine aşağıdakilireni ekleyerek;
###################alanadi-ssl-conf################
ssl_certificate /etc/nginx/ssl/alanadi.chained.com.crt;
ssl_certificate_key /etc/nginx/ssl/alanadi.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
# Disable preloading HSTS for now. You can use the commented out header line that includes
# the "preload" directive if you understand the implications.
#add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
###################alanadi-ssl-conf################
server {..} tanimlamasi içerisine
include /etc/nginx/ssl/alanadi-ssl.conf;
ilave ederek, nginx yeniden başlatıyoruz.
dhparams.pem daha önceden üretilmediyse
# openssl dhparam -out dhparms.pem 2048
komutuyla üretebiliriz.
18 Eylül 2017 Pazartesi
haproxy mysql loadbalancer olarak kullanmak
########lb01-/etc//haproxy/haproxy.cfg--####################
global
pidfile /var/run/haproxy.pid
daemon
user haproxy
group haproxy
stats socket /var/run/haproxy.socket user haproxy group haproxy mode 600 level admin
node haproxy_172.16.33.06
description haproxy server
#* Performance Tuning
maxconn 8192
spread-checks 3
quiet
defaults
#log global
mode tcp
option dontlognull
option tcp-smart-accept
option tcp-smart-connect
#option dontlog-normal
retries 3
option redispatch
maxconn 8192
timeout check 3500ms
timeout queue 3500ms
timeout connect 3500ms
timeout client 10800s
timeout server 10800s
userlist STATSUSERS
group admin users admin
user admin insecure-password admin-parolasi-degistir
user stats insecure-password genel-parola-degistir
listen admin_page
bind *:9600
mode http
stats enable
stats refresh 60s
stats uri /
acl AuthOkay_ReadOnly http_auth(STATSUSERS)
acl AuthOkay_Admin http_auth_group(STATSUSERS) admin
stats http-request auth realm admin_page unless AuthOkay_ReadOnly
#stats admin if AuthOkay_Admin
listen haproxy_172_16_33_06._3306
bind *:3306
mode tcp
timeout client 10800s
timeout server 10800s
balance leastconn
option httpchk
option allbackups
default-server port 9200 inter 2s downinter 5s rise 3 fall 2 slowstart 60s maxconn 500 maxqueue 256 weight 100
server 172.16.33.11 172.16.33.11:3306 check
server 172.16.33.12 172.16.33.12:3306 check
server 172.16.33.13 172.16.33.13:3306 check port 9200 inter 2s downinter 5s rise 3 fall 2 slowstart 60s maxconn 100 maxqueue 256 weight 100 backup
########lb01-/etc//haproxy/haproxy.cfg--####################
#########mysql server---adding-/etc/services----##############
mysqlchk 9200/tcp
mysqlchk 9200/tcp
#########mysql server---adding-/etc/services----##############
#########mysql server---adding- xinetd services----############
/etc/xinetd.d/mysqlchk
# default: on
# description: mysqlchk
service mysqlchk
{
flags = REUSE
socket_type = stream
port = 9200
wait = no
user = root
server = /usr/local/sbin/mysqlchk
log_on_failure += USERID
log_on_success =
disable = no
#only_from = 0.0.0.0/0
only_from = 0.0.0.0/0
per_source = UNLIMITED
}
#########mysql server---adding- xinetd services----##############
######################mysqlchk######################
#####!/bin/bash
#
# This script checks if a mysql server is healthy running on localhost. It will
# return:
# "HTTP/1.x 200 OK\r" (if mysql is running smoothly)
# - OR -
# "HTTP/1.x 500 Internal Server Error\r" (else)
#
# The purpose of this script is make haproxy capable of monitoring mysql properly
#
MYSQL_HOST="localhost"
MYSQL_PORT="3306"
MYSQL_USERNAME='smysqlchk'
MYSQL_PASSWORD='smy$qlchk*!'
MYSQL_OPTS="-N -q -A --connect-timeout=10"
TMP_FILE="/dev/shm/mysqlchk.$$.out"
ERR_FILE="/dev/shm/mysqlchk.$$.err"
FORCE_FAIL="/dev/shm/proxyoff"
MYSQL_BIN='/usr/bin/mysql'
CHECK_QUERY="show global status where variable_name='wsrep_local_state'"
CHECK_QUERY2="show global variables where variable_name='wsrep_sst_method'"
CHECK_QUERY3="show global variables where variable_name='read_only'"
preflight_check()
{
for I in "$TMP_FILE" "$ERR_FILE"; do
if [ -f "$I" ]; then
if [ ! -w $I ]; then
echo -e "HTTP/1.1 503 Service Unavailable\r\n"
echo -e "Content-Type: Content-Type: text/plain\r\n"
echo -e "\r\n"
echo -e "Cannot write to $I\r\n"
echo -e "\r\n"
exit 1
fi
fi
done
}
return_ok()
{
echo -e "HTTP/1.1 200 OK\r\n"
echo -e "Content-Type: text/html\r\n"
echo -e "Content-Length: 43\r\n"
echo -e "\r\n"
echo -e "<html><body>MySQL is running.</body></html>\r\n"
echo -e "\r\n"
# rm $ERR_FILE $TMP_FILE
exit 0
}
return_fail()
{
echo -e "HTTP/1.1 503 Service Unavailable\r\n"
echo -e "Content-Type: text/html\r\n"
echo -e "Content-Length: 42\r\n"
echo -e "\r\n"
echo -e "<html><body>MySQL is *down*.</body></html>\r\n"
# sed -e 's/\n$/\r\n/' $ERR_FILE
echo -e "\r\n"
# rm $ERR_FILE $TMP_FILE
exit 1
}
preflight_check
if [ -f "$FORCE_FAIL" ]; then
echo "$FORCE_FAIL found" > $ERR_FILE
return_fail;
fi
status=$($MYSQL_BIN $MYSQL_OPTS --host=$MYSQL_HOST --port=$MYSQL_PORT --user=$MYSQL_USERNAME --password=$MYSQL_PASSWORD -e "$CHECK_QUERY;" 2>/dev/null | awk '{print $2;}')
if [ $? -ne 0 ]; then
return_fail;
fi
if [ $status -eq 2 ] || [ $status -eq 4 ] ; then
readonly=$($MYSQL_BIN $MYSQL_OPTS --host=$MYSQL_HOST --port=$MYSQL_PORT --user=$MYSQL_USERNAME --password=$MYSQL_PASSWORD -e "$CHECK_QUERY3;" 2>/dev/null | awk '{print $2;}')
if [ $? -ne 0 ]; then
return_fail;
fi
if [ "$readonly" = "YES" -o "$readonly" = "ON" ]; then
return_fail;
fi
if [ $status -eq 2 ]; then
method=$($MYSQL_BIN $MYSQL_OPTS --host=$MYSQL_HOST --port=$MYSQL_PORT --user=$MYSQL_USERNAME --password=$MYSQL_PASSWORD -e "$CHECK_QUERY2;" 2>/dev/null | awk '{print $2;}')
if [ $? -ne 0 ]; then
return_fail;
fi
if [ -z "$method" ] || [ "$method" = "rsync" ] || [ "$method" = "mysqldump" ]; then
return_fail;
fi
fi
return_ok;
fi
return_fail;
######################mysqlchk######################
15 Eylül 2017 Cuma
zbt-we1326-kc
00:00.0 PCI bridge: Device 0e8d:0801 (rev 01)
00:01.0 PCI bridge: Device 0e8d:0801 (rev 01)
01:00.0 Network controller: MEDIATEK Corp. MT7662E 802.11ac PCI Express Wireless Network Adapter
02:00.0 Network controller: MEDIATEK Corp. Device 7603
root@OpenWrt:~#
root@LEDE:~# iperf -c 172.16.0.45
------------------------------------------------------------
Client connecting to 172.16.0.45, TCP port 5001
TCP window size: 43.8 KByte (default)
------------------------------------------------------------
[ 3] local 172.16.0.78 port 34614 connected with 172.16.0.45 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 919 MBytes 770 Mbits/sec
root@LEDE:~#
root@LEDE:~# lspci
00:00.0 PCI bridge: Device 0e8d:0801 (rev 01)
00:01.0 PCI bridge: Device 0e8d:0801 (rev 01)
01:00.0 Network controller: MEDIATEK Corp. MT7662E 802.11ac PCI Express Wireless Network Adapter
02:00.0 Network controller: MEDIATEK Corp. Device 7603
root@LEDE:~#
8 Eylül 2017 Cuma
mysql clusterı yerel ağdan gelebilecek olumsuzluklardan korumak
firewall arkasındaki sistemlerde iptables devre dışıbırakırım. Büyük ihtimal çoğunlukta benim gibi yapıyordur. 😆
Fakat son 24saat içinde yaşadığım bir sorundan dolayı mysql için özel bir kural uyguladım ve sadece izin verdiğim sunuculardan erişime izin verdim.
mysql kullanıcılarını, özellikle aktif-aktif mysql kullanıcılarına tavsiyem, yerel ağda olsa sınırmala yapmanız. Aksi durumda ağdan alacağınız bir mesaj tüm clusterın çökmesine sebep olabilir. Tecrübeyle şahit.
MYsql için uyguladığım kurallar aşağıda. İsteye kontrol ederek kullanabilir.
###################Scriptin başlangıcı###################
#! /bin/bash
# 20170908
# remzi@akyuz.tech
# mysql nodes
node1=10.60.10.1
node2=10.60.10.2
node4=10.60.10.4
#web servers
web03=10.60.10.83
web04=10.60.10.84
web05=10.60.10.85
#monitor
nagios=10.60.10.253
localhost=127.0.0.1
ports="3306,4567"
iptables -N mysql
iptables -F mysql
for host in $localhost $node1 $node2 $node4 $nagios $web03 $web04 $#web05
do
echo iptables -A mysql -p tcp -m multiport --destination-port $ports -s $host -j ACCEPT
iptables -A mysql -p tcp -m multiport --destination-port $ports -s $host -j ACCEPT
done
echo iptables -A mysql -p tcp -m multiport --destination-port $ports -j DROP
iptables -A mysql -p tcp -m multiport --destination-port $ports -j DROP
iptables -I INPUT -j mysql
########################Scriptin sonu#################
Kendi sisteminize göre scripti düzenlemeniz(ip adresi, node vs.) gerekir.
Fakat son 24saat içinde yaşadığım bir sorundan dolayı mysql için özel bir kural uyguladım ve sadece izin verdiğim sunuculardan erişime izin verdim.
mysql kullanıcılarını, özellikle aktif-aktif mysql kullanıcılarına tavsiyem, yerel ağda olsa sınırmala yapmanız. Aksi durumda ağdan alacağınız bir mesaj tüm clusterın çökmesine sebep olabilir. Tecrübeyle şahit.
MYsql için uyguladığım kurallar aşağıda. İsteye kontrol ederek kullanabilir.
###################Scriptin başlangıcı###################
#! /bin/bash
# 20170908
# remzi@akyuz.tech
# mysql nodes
node1=10.60.10.1
node2=10.60.10.2
node4=10.60.10.4
#web servers
web03=10.60.10.83
web04=10.60.10.84
web05=10.60.10.85
#monitor
nagios=10.60.10.253
localhost=127.0.0.1
ports="3306,4567"
iptables -N mysql
iptables -F mysql
for host in $localhost $node1 $node2 $node4 $nagios $web03 $web04 $#web05
do
echo iptables -A mysql -p tcp -m multiport --destination-port $ports -s $host -j ACCEPT
iptables -A mysql -p tcp -m multiport --destination-port $ports -s $host -j ACCEPT
done
echo iptables -A mysql -p tcp -m multiport --destination-port $ports -j DROP
iptables -A mysql -p tcp -m multiport --destination-port $ports -j DROP
iptables -I INPUT -j mysql
########################Scriptin sonu#################
Kendi sisteminize göre scripti düzenlemeniz(ip adresi, node vs.) gerekir.
6 Eylül 2017 Çarşamba
Disk doldu, ne yaparız?
Disk kullanım alanımız dolup, kullanılabilir alan kalmadığında yapılabilecekler;
1. Diski direk kullanıyorsak (Her hangi bir volume manager kullanılmadan)
Test sistemimizde 10G /testpart bölümümüz mevcut.
Burayı dolduruyoruz.
Diskimizin boyutu arttığından partition tablosunuda düzenlememiz gerekiyor.
Bu konuda parted, yukarıdaki gibi bize yardımcı oluyor.
Yukarıdaki işlemi yaptiktan sonra bölümü siliyoruz ve tekrar oluşturuyoruz.
Bölüm yeniden 12GB olarak oluşturuldu ve kullanıma tekrar alındı.
Yalnız dosya sistemimiz hala 10GB. Dosya sistemimizn 12 GB olarak kullanılması için, xfs_growfs ile mevcut bölüm tablosunu güncelleyerek, kontrol ediyoruz.
Disk bölüm tabloları güncellendi ve 2GB kullanılabilir alan elde etmiş olduk.
Eski dosyalarımızında durup durmadığını kontrol ediyoruz. Aşağıda görüldüğü gibi dosyalarımız mevcut durumda.
Artık yeni bölümü, eski bölüm olurak sisteme bağlayabiliriz(unmount,mount).
Son olarakta fstab'ı güncellenmesi gerekmektedir.
1. Diski direk kullanıyorsak (Her hangi bir volume manager kullanılmadan)
Test sistemimizde 10G /testpart bölümümüz mevcut.
Burayı dolduruyoruz.
Yukarıda görüldüğü gibi /testpart bölümünde boş alan kalmadı.
Bu aşamada kullandığımız alan her hangi bir disk sunucusu üzerinden ise şanslıyız. Yapmamız gereken, disk ünitesi üzerinden mevcut diskin(lun) boyutu artırarak, kullanıma almak.Diskimizin boyutunu 2GB artırarak 12GB yaptık. Tekrar lsblk ve parted ile kontrol ediyoruz. Her hangi bir işlem yapmadan önce diskimizi kullanım dışı bırakmayı unutmayalım!
Diskimizin boyutu arttığından partition tablosunuda düzenlememiz gerekiyor.
Bu konuda parted, yukarıdaki gibi bize yardımcı oluyor.
Yukarıdaki işlemi yaptiktan sonra bölümü siliyoruz ve tekrar oluşturuyoruz.
Bölüm yeniden 12GB olarak oluşturuldu ve kullanıma tekrar alındı.
Yalnız dosya sistemimiz hala 10GB. Dosya sistemimizn 12 GB olarak kullanılması için, xfs_growfs ile mevcut bölüm tablosunu güncelleyerek, kontrol ediyoruz.
Disk bölüm tabloları güncellendi ve 2GB kullanılabilir alan elde etmiş olduk.
Eski dosyalarımızında durup durmadığını kontrol ediyoruz. Aşağıda görüldüğü gibi dosyalarımız mevcut durumda.
Yukarıdaki işlemlerde dikkat etmemiz gereken önemli nokta, disk bölümünün silinip, veriler silinmeden tekrar oluşturulmasıdır. Şayet tecrubeniz yoksa, kendiniz için test sistemi oluşturup, öncelikle test sisteminde deneme yapmanızı tavsiye ederim.
parted eski sürümlerinde(3.0 öncesi) resize/resizepart özelliği mevcut. Sisteminizdeki parted eski sürümse resize özelliğini kullanabilirsiniz.
2. Her hangi bir disk sistemi kullanmıyorsak ve sisteme fiziksel olarak disk takıp kullanılacaksa bu durumda lvm kullanımına geçmemiz faydalı olur. Elle lvm yapılandırması oldukça basit. Yeni diski sistemimize taktığımızı ve
a. fiziksel bölüm oluşturulması
b. volum oluşturulması
c. sanal volum oluşturulması
d. formatlama
e. kullanıma alma
f. eski bölümden dataları yeni bölüme tasışıma,
g. Şayet eski bölüm kök "/" - bölüm değilse, eski bölüme yeni bölüme ilave etme,
Yeni diskimizi testpart olarak kullanıma aldık.
Şimdi eski diskimizi, yeni bölüme taşıyarak, yeni bölümü /testpart olarak sisteme bağlayarak kullanıma devam edebiliriz. Bu işlemi kendinize uygun aracı (cp, rsync, tar vs) kullanabilirsiniz.
Dosyaların taşınma işleminin yapıldığını kabul ederek, eski kullanım alanının yeni alanla birleştirilmesini aşağıdaki gibi yapabilirizi.
Artık yeni bölümü, eski bölüm olurak sisteme bağlayabiliriz(unmount,mount).
Son olarakta fstab'ı güncellenmesi gerekmektedir.
Kaydol:
Kayıtlar (Atom)
Git kullanımı notları
Temel ayarlar git kullanıcısı için: $ git config --global user.name "Remzi AKYÜZ" $ git config --global user.email "remzi@ak...
-
Bu gün ttnetin hediyesi olan tilgin yönlendiriciyle biraz oynayayım dedim Matkap, ve rg316-rp-sma kablo alıp cihazın kapağını tekrar açtım. ...
-
Bu hafta bir kaç gün iett otobüsleriyle istanbul içinde bir yerden bir başka yere gideyim dedim. Otobüslerde klima çalışmaz, pencereler açıl...
-
RHEL tabanlı her hangi bir sistemde felaket durumunda kurtarma modunda açtığımızda chroot yapmadan önce aşağıdaki bağlantı işlemlerini yapma...