skip to Main Content

windowsda statik yönlendirme

tercih veya benim gibi zorunluluktan windows kullanıyor olabilirsiniz. ihtiyaç halinde windows da statik yönlendirme nasıl yapılacağı sorulmuştu…

statik yönlendirme komut formatı aşagıdaki şekilde.

route ADD destination_network MASK subnet_mask  gateway_ip metric_cost IF interface_id

bu işlem için statik yönlendirme yapma yetkisine sahip bir kullanıcı olmalısınız. kişisel bir bilgisayar kullanıyırsanız powershell veya cmd yi yöneticisi yetkisi ile çalıştır demeniz yeterli olacaktır.

örnek bir komut yazacak olursak

route add 10.38.0.0 mask 255.255.255.0 192.168.0.1

ile 10.38.0.0/24 adresini 192.168.0.1 ipsine yönlendirmiş oluyoruz. windows üzerinde vpn bağlantısı, sanal makine v.b. kullanıyor ve yönlendirmeyi bunlara yapmak istiyorsanız interface id yi ögrenmemiz gerekmektedir. bunun için

route print interface

komutu ile interface listesini alabiliriz.

===========================================================================
Interface List
 18...02 05 85 7f eb 80 ......Juniper Networks Virtual Adapter
  8...38 64 58 b1 a9 60 ......Intel(R) Ethernet Connection (13) I219-LM
  6...0c 9a 3a f7 33 c2 ......Microsoft Wi-Fi Direct Virtual Adapter
 20...0e 9a 3a f7 33 c1 ......Microsoft Wi-Fi Direct Virtual Adapter #2
  7...0c 9a 3a f7 33 c1 ......Intel(R) Wi-Fi 6 AX201 160MHz
  1...........................Software Loopback Interface 1
===========================================================================

şimdi listede yer alan juniper arayüzüne dogru statik bir yönlendirme örneği yazalım.

route add 10.38.0.0 mask 255.255.255.0 172.16.0.1 IF 18

linux de cpu kullanımını kısıtlamak

genel olarak bir uygulamanın çok fazla cpu tüketmesi istenilmez. bu cpu tüketimi genel olarak bir kaç nedenden kaynaklanır.

  • kötü programcılık örnekleri
  • zafiyat oluşturmak için kötü niyetli uygulamalar
  • iyi yönetilmeyen sunucularda yük dengeleme v.b. yapılmaması
  • gerçekten işlem gücü gerektiren kernel derleme, 3d render v.b. işlemlerde

cpu tüketimi neden olursa olsun pcde bunun olmasını elbette istemiyoruz.. bunun için oldukça kullanışlı bir uygulama mevcut. önce uygulamayı sistemize kuralım.

sudo apt-get install cpulimit

kurulu yaptıktan sonra kullanmaya başlayabilirsiniz basit bir örnek yapalım.

cpulimit -l 20 python face-detect.py haarcascade.xml

diğer kullanım seçenekleri için help den yararlanılabilir. sisteminizde faza tüketilen uygulamalar için http://www.ferhatcicek.com/bilisim-dunyasi/isletim-sistemi-bilisim-dunyasi/linux/sh/20170821/yuksek-kaynak-tuketen-uygulamalari-bulmak/2177.html yazısına bakabilirsiniz.

Usage: cpulimit TARGET [OPTIONS...] [-- PROGRAM]
   TARGET must be exactly one of these:
      -p, --pid=N        pid of the process
      -e, --exe=FILE     name of the executable program file
                         The -e option only works when
                         cpulimit is run with admin rights.
      -P, --path=PATH    absolute path name of the
                         executable program file
   OPTIONS
      -b  --background   run in background
      -f  --foreground   launch target process in foreground and wait for it to exit
      -c  --cpu=N        override the detection of CPUs on the machine.
      -l, --limit=N      percentage of cpu allowed from 1 up.
                         Usually 1 - 800, but can be higher
                         on multi-core CPUs (mandatory)
      -m, --monitor-forks  Watch children/forks of the target process
      -q, --quiet        run in quiet mode (only print errors).
      -k, --kill         kill processes going over their limit
                         instead of just throttling them.
      -r, --restore      Restore processes after they have
                         been killed. Works with the -k flag.
      -s, --signal=SIG   Send this signal to the watched process when cpulimit exits.
                         Signal should be specificed as a number or 
                         SIGTERM, SIGCONT, SIGSTOP, etc. SIGCONT is the default.
      -v, --verbose      show control statistics
      -z, --lazy         exit if there is no suitable target process,
                         or if it dies
          --             This is the final CPUlimit option. All following
                         options are for another program we will launch.
      -h, --help         display this help and exit

linuxte yüksek kaynak tüketen uygulamaları bulmak

root@cicekpc:/home/fcicek#  ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
  PID  PPID CMD                         %MEM %CPU
 2878  2102 /usr/lib/firefox/firefox    17.8 28.3
 1274     1 /usr/sbin/mysqld             1.8  0.0
 2579  2102 /usr/bin/compiz              1.4  1.5
 2710  2452 /usr/bin/gnome-software --g  1.0  0.0
 1313  1267 /usr/lib/xorg/Xorg -core :0  0.8  1.8
 2723  2452 nautilus -n                  0.6  0.0
 2879     1 /usr/lib/fwupd/fwupd         0.6  0.0
 3083  2102 /usr/lib/gnome-terminal/gno  0.5  0.1
 1513     1 dockerd -G docker --debug -  0.5  0.1

debian altında kullanılmayan yapılandırma dosyaları

sisteminiz üzerinden programı kaldırdıktan sonra sistem üzerinde kalan ve kullanılmayan yapılandırma dosyalarını bulmak için

dpkg -l | awk '/^rc/ {print $2}'

kaldırmak için

sudo su
dpkg -l | awk '/^rc/ {print $2}' | xargs dpkg --purge

kullanabilirsiniz.

linuxde açık port ve socket

linuxte açık portları ve socketleri öğrenmek istiyorsak, en temel uygulamamız netstat dan başka bir şeye gerek yok.

fcicek@fcicek-home:~$ sudo netstat -plnt
Aktif internet bağlantıları (sadece sunucular)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               DİNLE      1298/sshd           
tcp        0      0 127.0.0.1:631           0.0.0.0:*               DİNLE      3905/cupsd          
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               DİNLE      1525/postgres       
tcp        0      0 127.0.0.1:5433          0.0.0.0:*               DİNLE      1508/postgres       
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               DİNLE      1436/mysqld         
tcp        0      0 0.0.0.0:5355            0.0.0.0:*               DİNLE      1293/systemd-resolv 
tcp6       0      0 :::22                   :::*                    DİNLE      1298/sshd           
tcp6       0      0 ::1:631                 :::*                    DİNLE      3905/cupsd          
tcp6       0      0 :::5355                 :::*                    DİNLE      1293/systemd-resolv 
tcp6       0      0 :::80                   :::*                    DİNLE      1524/apache2

 

fcicek@fcicek-home:~$ netstat -lx 
Active UNIX domain sockets (sadece sunucular)
Proto RefCnt Flags       Type       State         I-Node   Yol
unix  2      [ ACC ]     AKIŞ      DİNLENİYOR  34197    /tmp/.ICE-unix/2505
unix  2      [ ACC ]     AKIŞ      DİNLENİYOR  28166    /run/user/125/bus
unix  2      [ ACC ]     AKIŞ      DİNLENİYOR  34061    /run/user/1000/systemd/private
unix  2      [ ACC ]     AKIŞ      DİNLENİYOR  34066    /run/user/1000/bus
unix  2      [ ACC ]     AKIŞ      DİNLENİYOR  34196    @/tmp/.ICE-unix/2505
unix  2      [ ACC ]     AKIŞ      DİNLENİYOR  87786    /tmp/.org.chromium.Chromium.9o8hA2/SingletonSocket
unix  2      [ ACC ]     AKIŞ      DİNLENİYOR  27553    @/tmp/.ICE-unix/1750

 

bash-completion : bash ile gelişmiş komut tamamlama

debian tabanlı dağıtımlarda bash-completion özelliği genellikle varsayılan paketler arasında yer alıyor. nedir bu bash-completion derseniz komut yorumlayıcısında her aşamada tab tuşu ile komut tamamlama özelligidir.

örnek olarak “apt-get install ” yaptığınızda paketin tam adını bilmesek bile kurulabilecek paketler listenelecektir.

yazılım hakkında detaylı bilgi almak isterseniz http://bash-completion.alioth.debian.org/ adresinden bilgi alabilirsiniz.

eğer bu paket dağıtımınızda yoksa öncelikle kurmanız

root@cicek:~#apt-get install bash-completion

ve sonrasında .bash_profile veya .bashrc gibi uygun bir dosyayı

root@cicek:~#vi .bash_profile

düzenleyerek aşagıdaki satırları eklememiz yeterli olacaktır.

if [ -f /etc/bash_completion ]; then
 . /etc/bash_completion
fi

linuxte vmware kurulumu sırasında karşılaşılan karakter kodu hatası

linux kullanıyor ve zorunlu nedenlerle windows ihtiyacınız olursa vmware elbette en iyi çözüm gibi durmaktadır.

http://www.vmware.com/go/tryworkstation-linux-64 adresinden linux için gerekli yazılımı indirdikten sonra kuruluma sıra geldiğinde

root@cicek:# ./VMware-Workstation-Full-12.1.0-3272444.x86_64.bundle 
  File "/usr/lib/vmware-installer/2.1.0/python/lib/sqlite3/__init__.py", line 0
SyntaxError: ('unknown encoding: ISO-8859-1', ('/usr/lib/vmware-installer/2.1.0/python/lib/sqlite3/__init__.py', 0, 0, None))

hatası ile karşılaşıyorsanız sizde linux unuzu Türkçe olarak yapılandırmışsınız ve bu şekilde kullanıyorsunuz demektedir. bu ve benzeri duruma aslında bir çok yazılımda karşılaşabilirsiniz. çözümü ise oldukça basit. komut yorumyacısına LANG=en eklemek.

root@cicek:# LANG=en ./VMware-Workstation-Full-12.1.0-3272444.x86_64.bundle

linux – ip adresinin öğrenilmesi

linux de bir ethernet arayüzünün ip adresinin ifconfig çıktısından inceleyerek bulabiliriz. ancak nokta atışı yapılması gereken zamanlar olabilir.

aşagıdaki örnekte adım adım incelenebilir.

fcicek@ubuntu:~$ ifconfig eth0 
eth0      Link encap:Ethernet  HWaddr 00:0c:29:68:00:00  
          inet addr:192.168.126.128  Bcast:192.168.126.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe68:0000/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:388668 errors:0 dropped:0 overruns:0 frame:0
          TX packets:226787 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:506708018 (506.7 MB)  TX bytes:22826593 (22.8 MB)
fcicek@ubuntu:~$ ifconfig eth0 | grep 'inet addr:'
          inet addr:192.168.126.128  Bcast:192.168.126.255  Mask:255.255.255.0
fcicek@ubuntu:~$ ifconfig eth0 | grep 'inet addr:' | awk '{print$2}' 
addr:192.168.126.128
fcicek@ubuntu:~$ ifconfig eth0 | grep 'inet addr:' | awk '{print$2}' | cut -d: -f2
192.168.126.128

linuxte komut satırından gerçek ip adresinin ögrenilmesi

linuxte shell script yazarken veya komut satırın dayken gerçek ip adresi (extarnal ip) bilgisine ihtiyaç duyabilirsiniz. bunun için farklı yöntemler vardır. temel olarak internette, size sizin bağlantı kurduğunuz ip adresini geri gönderecek bir servisin olmasıdır. bu servisler http, telnet, ssh veya başka bir servis olabilir. bunlardan bir kaçına hızlıca göz atalım

çok fazla bilinen bir çok sitenin bu işler için hazırlanmış api leri v.b. mevcuttur.

CURL ve WGET ile

fcicek@ubuntu:~$ curl bot.whatismyipaddress.com
78.168.67.209
fcicek@ubuntu:~$ wget http://smart-ip.net/myip -O - -q ; echo
78.168.67.209

fcicek@ubuntu:~$ curl http://smart-ip.net/myip
78.168.67.209
fcicek@ubuntu:~$ curl -s "http://api.hostip.info/get_html.php" 
Country: TURKEY (TR)
City: Karaman
IP: 78.168.67.209

fcicek@ubuntu:~$ curl -s "http://api.hostip.info/get_html.php" | grep 'IP:' | awk '{print $2}'
78.168.67.209
fcicek@ubuntu:~$ curl -s checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/< .*$//'  
78.168.67.209
fcicek@ubuntu:~$ curl ident.me
78.168.67.209

EXEC

fcicek@ubuntu:~$ exec 3<> /dev/tcp/icanhazip.com/80 && # open connection
>   echo 'GET /' >&3 &&                   # send http 0.9 request
>   read -u 3 && echo $REPLY &&           # read response
>   exec 3>&-                             # close fd
78.168.67.209

LWP-REQUEST

fcicek@ubuntu:~$ lwp-request -o text checkip.dyndns.org | awk '{ print $NF }'
78.168.67.209

DIG

fcicek@ubuntu:~$ dig +short myip.opendns.com @resolver1.opendns.com
78.168.67.209

fcicek@ubuntu:~$ alias wanip='dig +short myip.opendns.com @resolver1.opendns.com'
fcicek@ubuntu:~$ wanip
78.168.67.209
fcicek@ubuntu:~$ dig @ns1.google.com -t txt o-o.myaddr.l.google.com +short
"78.168.67.209"
fcicek@ubuntu:~$ dig -4 @ns1-1.akamaitech.net -t a whoami.akamai.net +short
78.168.67.209

NETCAT

fcicek@ubuntu:~$ netcat icanhazip.com 80 < << $'GET / HTTP/1.1\nHost: icanhazip.com\n\n' | tail -n1
78.168.67.209

huawei cihazlarda başlangıç mesajı

huawei switch – routerlara bağlantı sırasında kullanıcılara karşılama mesajı eklenmesi bazı durumlarda gerekebilir. bunun nasıl yapılacağına ve nasıl göründüğünü izleyelim

[Huawei]header shell information " Huawei TEST switchine hosgeldiniz " 
<Huawei>quit

User interface con0 is available



Please Press ENTER.


Login authentication


Password:
Huawei TEST switchine hosgeldiniz
<Huawei>

Back To Top