Bash Shell Ve AWK Betikleri

Linux ve Unix tabanli isletim sistemlerini hep beraber tanıyıp öğreneceğiz.
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15570
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2701 kez
Teşekkür edildi: 5602 kez

Bash Shell Ve AWK Betikleri

Mesaj gönderen TRWE_2012 »

Ram Ve Önbellek Temizleme

Merhabalar

Gnu-Linux dağıtımlarında çoğu görüşe göre "dağıtım ne kadar çok kaynak ram harcarsa o kadar iyi dağıtımdır" görüşü hakimdir.Aslında bu çarpık görüşün hiçbir temel dayanağı da yoktur.

Bundan dolayı ben sizlere kullandığınız dağıtım debian kendisi veya debian temelli olmak üzere , sisteminizi önbellek ve ram yönünden rahatlacak bir bash shell betiği vereceğim.Bu bash shell betiği ile sisteminiz daha iyi tepki verecek komutlara.... ve size.....

Bu Bash_Shell_ Betiği bir editör'e kopyala-yapıştır ile aktarın adını clearRAM.sh olacak şekilde / (root) dizin altına kayıt edin. Masaüstüne bir link olarak ' /......' şeklinde textsel uzantısını oluşturun.Sonra bu tam yolu yönetici modunda açılmış terminal arabirimine kopyala-yapıştır ile aktarın ve enter tuşuna basın.

Şimdi bu yukarıda anlatılanlar aşağıda özetlenmiştir.

1.Adım: Betiğin İçeriğinin Verilmesi:

Kod: Tümünü seç

#!/bin/bash
## Bash Script to clear cached memory on (Ubuntu/Debian) Linux
## By Philipp Klaus
## see <http://blog.philippklaus.de/2011/02/clear-cached-memory-on-ubuntu/>

if [ "$(whoami)" != "root" ]
then
  echo "You have to run this script as Superuser!"
  exit 1
fi

# Get Memory Information
freemem_before=$(cat /proc/meminfo | grep MemFree | tr -s ' ' | cut -d ' ' -f2) && freemem_before=$(echo "$freemem_before/1024.0" | bc)
cachedmem_before=$(cat /proc/meminfo | grep "^Cached" | tr -s ' ' | cut -d ' ' -f2) && cachedmem_before=$(echo "$cachedmem_before/1024.0" | bc)

# Output Information
echo -e "This script will clear cached memory and free up your ram.\n\nAt the moment you have $cachedmem_before MiB cached and $freemem_before MiB free memory."

# Test sync
if [ "$?" != "0" ]
then
  echo "Something went wrong, It's impossible to sync the filesystem."
  exit 1
fi

# Clear Filesystem Buffer using "sync" and Clear Caches
sync && echo 3 > /proc/sys/vm/drop_caches

freemem_after=$(cat /proc/meminfo | grep MemFree | tr -s ' ' | cut -d ' ' -f2) && freemem_after=$(echo "$freemem_after/1024.0" | bc)

# Output Summary
echo -e "This freed $(echo "$freemem_after - $freemem_before" | bc) MiB, so now you have $freemem_after MiB of free RAM."

exit 0
2.Adım:Betiği Uygulaması.

Resim

Betiğin Tercümesi:

Bu komut dosyası önbelleğe alınmış belleği temizler ve Ram Slotunu boşaltır.

Şu anda XX MB önbelleğe ve YY MB boş belleğe sahipsiniz.
ZZ MB serbest bırakıldı, şimdi TT MB boş RAM'iniz var


Textsel Tam Yol : '/portable apps/clearRAM/clearRAM.sh' (dikkat ederseniz bendeniz tam yolu ' /....' şeklinde kurgulamışım....Sizde aynen böyle yapın.Yalnız bendeniz iç içe iki dizin içine "clearRAM.sh" dosyasını yerleştirmişim siz böyle yapmak zorunda değilsiniz.)

TRWE_2012
Alaydan Yetişme PC Kullanıcısı
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15570
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2701 kez
Teşekkür edildi: 5602 kez

Linux'da Sistem Özetini Çıktı Olarak Veren Bash_Shell Betiği

Mesaj gönderen TRWE_2012 »

Linux'ta Ağ, Disk Kullanımı, Çalışma Süresi, Yük Ortalaması ve RAM Kullanımını İzleyen Kabuk Betiği
Açıklama:

Sistem Yöneticisinin görevi sunucuları, kullanıcıları, günlükleri izlemek, yedekleme oluşturmak zorunda olduğu için en yinelenen görevler için yöneticilerin veya kullanıcıların çoğu, günlük yinelenen görevlerini otomatikleştirmek için bir komut dosyası yazılması işleri büyük oranda kolaylaştıracaktır.

Burada, tipik bir sistem yöneticisinin görevini otomatikleştirmeyi amaçlamayan bir kabuk Script ile , özellikle Sistemleri, Ağları, Kullanıcıları hakkında ihtiyaç duydukları bilgilerin çoğunu alabilen yeni başlayanlar için yararlı olabilecek bir bash shell betiğidir. Yük, RAM, ana bilgisayar, Dahili IP, Harici IP, Çalışma süresi, vb.

Çıktıyı biçimlendirmeye özen gösterilmiştir (belli bir dereceye kadar). Komut Dosyası Kötü Amaçlı içerik içermemekte ve Normal kullanıcı Hesabı kullanılarak çalıştırılabilir.(sudo -s komutu ile root'a bürünme olayı) Aslında bu komut dosyasını root olarak değil kullanıcı olarak çalıştırmanız önerilmekte.....

Shell_Betiğin Yüklenmesi

1.

Kod: Tümünü seç

# wget https://tecmint.com/wp-content/scripts/tecmint_monitor.sh 
komutu ile betiği "/usr/bin/monitor" dizinine kayıt edilir.

2.Ardından indirdiğiniz betiğin izinleri

Kod: Tümünü seç

 # chmod 755 tecmint_monitor.sh
komutu ile genel hale getirilir.

3.Dosya izinleri genelleştirildikten sonra

Kod: Tümünü seç

./tecmint_monitor.sh -i 
komutu ile betik yüklenir ve aktif hale getirilir.Çıktı olarak "Congratulations! Script Installed, now run monitor Command" ifadesi betiğin sistem tarafından kabul edildiğinin kanıtıdır.

4.Komut Satırına ;

Kod: Tümünü seç

# ./Path/to/script/tecmint_monitor.sh
verdikten sonra ister normal kullanıcı terminalinde ister root terminalde olsun komut satırına

Kod: Tümünü seç

monitor
yazıp enter tuşuna basın yeter.

Eğer çıktı almak isterseniz komut satırına

Kod: Tümünü seç

monitor > sistem_bilgisi.txt 
yazıp enter tuşuna basın yeter.....

Sonuç:

Resim
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15570
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2701 kez
Teşekkür edildi: 5602 kez

Sistem Güncelleme

Mesaj gönderen TRWE_2012 »

Merhabalar

İŞLEM ADIMLARI......

1.Boş bir metin editörü açın..

2.Bu boş metin editörünün içine şu kodları kopyala-yapıştır ile aktarın.

Kod: Tümünü seç

#!/bin/bash
DEBIAN_FRONTEND=noninteractive
printf "\n\n-----** UPDATE **-----\n\n"
apt-get update
printf "\n\n-----** UPGRADE **-----\n\n"
apt-get upgrade -y
printf "\n\n-----** DIST-UPGRADE **-----\n\n"
apt-get dist-upgrade -y
printf "\n\n-----** AUTOREMOVE **-----\n\n"
apt-get autoremove -y
printf "\n\n-----** AUTOCLEAN **-----\n\n"
apt-get autoclean
DEBIAN_FRONTEND=interactive
3.Sonra bu dosyayı istediğiniz bir isimle uzantısı .sh olacak şekilde masaüstünüze kayıtlayın.

Örneğin dosyanın ismi

Kod: Tümünü seç

"System_Update.sh"
olabilir.

4.Sonra masaüstünde bir terminal açın ve dosya izinlerini

Kod: Tümünü seç

chmod x+ dosya_adı.sh
yazıp enter tuşuna basın.

5.Şimdi /(root) dizini yönetici olarak açın ve dosyayıdizin altına kes-kopyala ile taşıyın.

6.Masaüstünde normal kullanıcı hakları ile bir terminal penceresi açıp

Kod: Tümünü seç

sudo '/dosya_adı.sh'
olacak şekilde

Kod: Tümünü seç

 '/ '
arasında yazıp enter tuşuna basın.

7.İşte sonuç......!

Örnek Çıktı

Kod: Tümünü seç

notebook-pc ~ # '/Sistem_Güncelleştirme.sh'


-----** UPDATE **-----

Bağlandı  http://security.ubuntu.com trusty-security InRelease                 
Yoksay    http://archive.ubuntu.com trusty InRelease                           
Bağlandı  http://ppa.launchpad.net trusty InRelease                            
Yoksay    http://archive.canonical.com trusty InRelease                        
Yoksay    http://packages.linuxmint.com rosa InRelease                         
Yoksay    http://extra.linuxmint.com rosa InRelease                            
Yoksay    http://repo.vivaldi.com stable InRelease                             
Bağlandı  http://archive.ubuntu.com trusty-updates InRelease                   
Bağlandı  http://archive.canonical.com trusty Release.gpg                      
Bağlandı  http://security.ubuntu.com trusty-security/main i386 Packages        
Bağlandı  http://repo.vivaldi.com stable Release.gpg                           
Bağlandı  http://ppa.launchpad.net trusty InRelease                            
Bağlandı  http://archive.ubuntu.com trusty Release.gpg                         
Bağlandı  http://packages.linuxmint.com rosa Release.gpg                       
Bağlandı  http://extra.linuxmint.com rosa Release.gpg                          
Bağlandı  http://archive.canonical.com trusty Release                          
Bağlandı  http://repo.vivaldi.com stable Release                               
Bağlandı  http://security.ubuntu.com trusty-security/restricted i386 Packages  
Bağlandı  http://archive.ubuntu.com trusty-updates/main i386 Packages          
Bağlandı  http://ppa.launchpad.net trusty InRelease                            
Bağlandı  http://archive.canonical.com trusty/partner i386 Packages            
Bağlandı  http://security.ubuntu.com trusty-security/universe i386 Packages    
Bağlandı  http://repo.vivaldi.com stable/main amd64 Packages                   
Bağlandı  http://extra.linuxmint.com rosa Release                              
Bağlandı  http://archive.ubuntu.com trusty-updates/restricted i386 Packages    
Bağlandı  http://packages.linuxmint.com rosa Release                           
Bağlandı  http://archive.canonical.com trusty/partner Translation-en           
Bağlandı  http://security.ubuntu.com trusty-security/multiverse i386 Packages  
Bağlandı  http://repo.vivaldi.com stable/main i386 Packages                    
Bağlandı  http://security.ubuntu.com trusty-security/main Translation-en       
Bağlandı  http://archive.ubuntu.com trusty-updates/universe i386 Packages      
Bağlandı  http://ppa.launchpad.net trusty/main Sources                         
Bağlandı  http://security.ubuntu.com trusty-security/multiverse Translation-en 
Bağlandı  http://archive.ubuntu.com trusty-updates/multiverse i386 Packages    
Bağlandı  http://extra.linuxmint.com rosa/main i386 Packages                   
Bağlandı  http://packages.linuxmint.com rosa/main i386 Packages                
Bağlandı  http://ppa.launchpad.net trusty/main i386 Packages                   
Bağlandı  http://security.ubuntu.com trusty-security/restricted Translation-en 
Bağlandı  http://archive.ubuntu.com trusty-updates/main Translation-en         
Bağlandı  http://security.ubuntu.com trusty-security/universe Translation-en   
Bağlandı  http://archive.ubuntu.com trusty-updates/multiverse Translation-en   
Bağlandı  http://ppa.launchpad.net trusty/main Translation-en                  
Bağlandı  http://packages.linuxmint.com rosa/upstream i386 Packages            
Bağlandı  http://archive.ubuntu.com trusty-updates/restricted Translation-en   
Bağlandı  http://archive.ubuntu.com trusty-updates/universe Translation-en     
Bağlandı  http://ppa.launchpad.net trusty/main Sources                         
Bağlandı  http://archive.ubuntu.com trusty Release                             
Bağlandı  http://packages.linuxmint.com rosa/import i386 Packages              
Bağlandı  http://ppa.launchpad.net trusty/main i386 Packages                   
Bağlandı  http://archive.ubuntu.com trusty/main i386 Packages                  
Bağlandı  http://ppa.launchpad.net trusty/main Translation-en                  
Bağlandı  http://archive.ubuntu.com trusty/restricted i386 Packages            
Bağlandı  http://archive.ubuntu.com trusty/universe i386 Packages              
Bağlandı  http://ppa.launchpad.net trusty/main Sources                         
Bağlandı  http://archive.ubuntu.com trusty/multiverse i386 Packages            
Bağlandı  http://ppa.launchpad.net trusty/main i386 Packages                   
Bağlandı  http://archive.ubuntu.com trusty/main Translation-tr                 
Bağlandı  http://ppa.launchpad.net trusty/main Translation-en                  
Bağlandı  http://archive.ubuntu.com trusty/main Translation-en                 
Bağlandı  http://archive.ubuntu.com trusty/multiverse Translation-tr           
Bağlandı  http://archive.ubuntu.com trusty/multiverse Translation-en           
Yoksay    http://repo.vivaldi.com stable/main Translation-tr_TR                
Bağlandı  http://archive.ubuntu.com trusty/restricted Translation-tr           
Yoksay    http://repo.vivaldi.com stable/main Translation-tr                   
Bağlandı  http://archive.ubuntu.com trusty/restricted Translation-en           
Yoksay    http://repo.vivaldi.com stable/main Translation-en                   
Yoksay    http://extra.linuxmint.com rosa/main Translation-tr_TR               
Bağlandı  http://archive.ubuntu.com trusty/universe Translation-tr             
Bağlandı  http://archive.ubuntu.com trusty/universe Translation-en             
Yoksay    http://extra.linuxmint.com rosa/main Translation-tr                  
Yoksay    http://extra.linuxmint.com rosa/main Translation-en                  
Yoksay    http://archive.ubuntu.com trusty/main Translation-tr_TR              
Yoksay    http://archive.ubuntu.com trusty/multiverse Translation-tr_TR        
Yoksay    http://archive.ubuntu.com trusty/restricted Translation-tr_TR        
Yoksay    http://archive.ubuntu.com trusty/universe Translation-tr_TR          
Yoksay    http://packages.linuxmint.com rosa/import Translation-tr_TR          
Yoksay    http://packages.linuxmint.com rosa/import Translation-tr             
Yoksay    http://packages.linuxmint.com rosa/import Translation-en             
Yoksay    http://packages.linuxmint.com rosa/main Translation-tr_TR            
Yoksay    http://packages.linuxmint.com rosa/main Translation-tr               
Yoksay    http://packages.linuxmint.com rosa/main Translation-en               
Yoksay    http://packages.linuxmint.com rosa/upstream Translation-tr_TR        
Yoksay    http://packages.linuxmint.com rosa/upstream Translation-tr           
Yoksay    http://packages.linuxmint.com rosa/upstream Translation-en           
Paket listeleri okunuyor... Bitti                                              


-----** UPGRADE **-----

Paket listeleri okunuyor... Bitti
Bağımlılık ağacı oluşturuluyor       
Durum bilgisi okunuyor... Bitti      
Yükseltme hesaplanıyor... Bitti
0 paket yükseltilecek, 0 yeni paket kurulacak, 0 paket kaldırılacak ve 0 paket yükseltilmeyecek.


-----** DIST-UPGRADE **-----

Paket listeleri okunuyor... Bitti
Bağımlılık ağacı oluşturuluyor       
Durum bilgisi okunuyor... Bitti      
Yükseltme hesaplanıyor... Bitti
0 paket yükseltilecek, 0 yeni paket kurulacak, 0 paket kaldırılacak ve 0 paket yükseltilmeyecek.


-----** AUTOREMOVE **-----

Paket listeleri okunuyor... Bitti
Bağımlılık ağacı oluşturuluyor       
Durum bilgisi okunuyor... Bitti      
0 paket yükseltilecek, 0 yeni paket kurulacak, 0 paket kaldırılacak ve 0 paket yükseltilmeyecek.


-----** AUTOCLEAN **-----

Paket listeleri okunuyor... Bitti
Bağımlılık ağacı oluşturuluyor       
Durum bilgisi okunuyor... Bitti      
Del vivaldi-stable 2.11.1811.41-1 [64,4 MB]
notebook-pc ~ # 
Yukarıdaki çıktı da TRWE_2012 direkt root terminalden işlemi icra etmiştir.


Not:

Normal Kullanıcı Terminal 'den Örnek Çıktı.....

Kod: Tümünü seç

linuxmaster@notebook-pc ~ $ sudo '/Sistem_Güncelleştirme.sh'
[sudo] password for linuxmaster: 


-----** UPDATE **-----

Yoksay    http://packages.linuxmint.com rosa InRelease                         
Bağlandı  http://security.ubuntu.com trusty-security InRelease                 
Yoksay    http://archive.ubuntu.com trusty InRelease                           
Yoksay    http://extra.linuxmint.com rosa InRelease                            
Yoksay    http://archive.canonical.com trusty InRelease                        
Bağlandı  http://ppa.launchpad.net trusty InRelease                            
Bağlandı  http://security.ubuntu.com trusty-security/main i386 Packages        
Bağlandı  http://archive.ubuntu.com trusty-updates InRelease                   
Bağlandı  http://packages.linuxmint.com rosa Release.gpg                       
Bağlandı  http://extra.linuxmint.com rosa Release.gpg                          
Bağlandı  http://archive.canonical.com trusty Release.gpg                      
Yoksay    http://repo.vivaldi.com stable InRelease                             
Bağlandı  http://security.ubuntu.com trusty-security/restricted i386 Packages  
Bağlandı  http://archive.ubuntu.com trusty Release.gpg                         
Bağlandı  http://repo.vivaldi.com stable Release.gpg                           
Bağlandı  http://ppa.launchpad.net trusty InRelease                            
Bağlandı  http://archive.canonical.com trusty Release                          
Bağlandı  http://security.ubuntu.com trusty-security/universe i386 Packages    
Bağlandı  http://archive.ubuntu.com trusty-updates/main i386 Packages          
Bağlandı  http://extra.linuxmint.com rosa Release                              
Bağlandı  http://packages.linuxmint.com rosa Release                           
Bağlandı  http://repo.vivaldi.com stable Release                               
Bağlandı  http://archive.canonical.com trusty/partner i386 Packages            
Bağlandı  http://ppa.launchpad.net trusty InRelease                            
Bağlandı  http://security.ubuntu.com trusty-security/multiverse i386 Packages  
Bağlandı  http://archive.ubuntu.com trusty-updates/restricted i386 Packages    
Bağlandı  http://repo.vivaldi.com stable/main amd64 Packages                   
Bağlandı  http://archive.canonical.com trusty/partner Translation-en           
Bağlandı  http://security.ubuntu.com trusty-security/main Translation-en       
Bağlandı  http://extra.linuxmint.com rosa/main i386 Packages                   
Bağlandı  http://archive.ubuntu.com trusty-updates/universe i386 Packages      
Bağlandı  http://ppa.launchpad.net trusty/main Sources                         
Bağlandı  http://packages.linuxmint.com rosa/main i386 Packages                
Bağlandı  http://repo.vivaldi.com stable/main i386 Packages                    
Bağlandı  http://security.ubuntu.com trusty-security/multiverse Translation-en 
Bağlandı  http://archive.ubuntu.com trusty-updates/multiverse i386 Packages    
Bağlandı  http://security.ubuntu.com trusty-security/restricted Translation-en 
Bağlandı  http://ppa.launchpad.net trusty/main i386 Packages                   
Bağlandı  http://archive.ubuntu.com trusty-updates/main Translation-en         
Bağlandı  http://packages.linuxmint.com rosa/upstream i386 Packages            
Bağlandı  http://security.ubuntu.com trusty-security/universe Translation-en   
Bağlandı  http://archive.ubuntu.com trusty-updates/multiverse Translation-en   
Bağlandı  http://ppa.launchpad.net trusty/main Translation-en                  
Bağlandı  http://archive.ubuntu.com trusty-updates/restricted Translation-en   
Bağlandı  http://packages.linuxmint.com rosa/import i386 Packages              
Bağlandı  http://archive.ubuntu.com trusty-updates/universe Translation-en     
Bağlandı  http://ppa.launchpad.net trusty/main Sources                         
Bağlandı  http://archive.ubuntu.com trusty Release                             
Bağlandı  http://ppa.launchpad.net trusty/main i386 Packages                   
Bağlandı  http://archive.ubuntu.com trusty/main i386 Packages                  
Bağlandı  http://ppa.launchpad.net trusty/main Translation-en                  
Bağlandı  http://archive.ubuntu.com trusty/restricted i386 Packages            
Bağlandı  http://archive.ubuntu.com trusty/universe i386 Packages              
Bağlandı  http://ppa.launchpad.net trusty/main Sources                         
Bağlandı  http://archive.ubuntu.com trusty/multiverse i386 Packages            
Bağlandı  http://ppa.launchpad.net trusty/main i386 Packages                   
Bağlandı  http://archive.ubuntu.com trusty/main Translation-tr                 
Bağlandı  http://ppa.launchpad.net trusty/main Translation-en                  
Bağlandı  http://archive.ubuntu.com trusty/main Translation-en                 
Bağlandı  http://archive.ubuntu.com trusty/multiverse Translation-tr           
Yoksay    http://repo.vivaldi.com stable/main Translation-tr_TR                
Bağlandı  http://archive.ubuntu.com trusty/multiverse Translation-en           
Yoksay    http://repo.vivaldi.com stable/main Translation-tr                   
Yoksay    http://repo.vivaldi.com stable/main Translation-en                   
Bağlandı  http://archive.ubuntu.com trusty/restricted Translation-tr           
Bağlandı  http://archive.ubuntu.com trusty/restricted Translation-en           
Bağlandı  http://archive.ubuntu.com trusty/universe Translation-tr             
Bağlandı  http://archive.ubuntu.com trusty/universe Translation-en             
Yoksay    http://extra.linuxmint.com rosa/main Translation-tr_TR               
Yoksay    http://extra.linuxmint.com rosa/main Translation-tr                  
Yoksay    http://extra.linuxmint.com rosa/main Translation-en                  
Yoksay    http://archive.ubuntu.com trusty/main Translation-tr_TR              
Yoksay    http://archive.ubuntu.com trusty/multiverse Translation-tr_TR        
Yoksay    http://archive.ubuntu.com trusty/restricted Translation-tr_TR        
Yoksay    http://archive.ubuntu.com trusty/universe Translation-tr_TR          
Yoksay    http://packages.linuxmint.com rosa/import Translation-tr_TR          
Yoksay    http://packages.linuxmint.com rosa/import Translation-tr             
Yoksay    http://packages.linuxmint.com rosa/import Translation-en             
Yoksay    http://packages.linuxmint.com rosa/main Translation-tr_TR            
Yoksay    http://packages.linuxmint.com rosa/main Translation-tr               
Yoksay    http://packages.linuxmint.com rosa/main Translation-en               
Yoksay    http://packages.linuxmint.com rosa/upstream Translation-tr_TR        
Yoksay    http://packages.linuxmint.com rosa/upstream Translation-tr           
Yoksay    http://packages.linuxmint.com rosa/upstream Translation-en           
Paket listeleri okunuyor... Bitti                                              


-----** UPGRADE **-----

Paket listeleri okunuyor... Bitti
Bağımlılık ağacı oluşturuluyor       
Durum bilgisi okunuyor... Bitti      
Yükseltme hesaplanıyor... Bitti
0 paket yükseltilecek, 0 yeni paket kurulacak, 0 paket kaldırılacak ve 0 paket yükseltilmeyecek.


-----** DIST-UPGRADE **-----

Paket listeleri okunuyor... Bitti
Bağımlılık ağacı oluşturuluyor       
Durum bilgisi okunuyor... Bitti      
Yükseltme hesaplanıyor... Bitti
0 paket yükseltilecek, 0 yeni paket kurulacak, 0 paket kaldırılacak ve 0 paket yükseltilmeyecek.


-----** AUTOREMOVE **-----

Paket listeleri okunuyor... Bitti
Bağımlılık ağacı oluşturuluyor       
Durum bilgisi okunuyor... Bitti      
0 paket yükseltilecek, 0 yeni paket kurulacak, 0 paket kaldırılacak ve 0 paket yükseltilmeyecek.


-----** AUTOCLEAN **-----

Paket listeleri okunuyor... Bitti
Bağımlılık ağacı oluşturuluyor       
Durum bilgisi okunuyor... Bitti      
linuxmaster@notebook-pc ~ $ 
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15570
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2701 kez
Teşekkür edildi: 5602 kez

Linux Komutu "find" GUI Olarak Kullanılabilmesi

Mesaj gönderen TRWE_2012 »

Merhabalar

Önce mini Python modül paketini depolardan yüklüyoruz sistemimize....

Kod: Tümünü seç

notebook-pc / # apt-get install the python3-tk
Paket listeleri okunuyor... Bitti
Bağımlılık ağacı oluşturuluyor       
Durum bilgisi okunuyor... Bitti      
Aşağıdaki ek paketler de kurulacak:
  blt libregina3
Önerilen paketler:
  blt-demo tix python3-tk-dbg the-doc
Aşağıdaki YENİ paketler kurulacak:
  blt libregina3 python3-tk the
0 paket yükseltilecek, 4 yeni paket kurulacak, 0 paket kaldırılacak ve 0 paket yükseltilmeyecek.
1.175 kB arşiv dosyası indirilecek.
Bu işlem tamamlandıktan sonra 4.201 kB ek disk alanı kullanılacak.
Devam etmek istiyor musunuz? [E/h] E
Alınıyor: 1 http://archive.ubuntu.com/ubuntu/ trusty/main blt i386 2.4z-7ubuntu2 [540 kB]
Alınıyor: 2 http://archive.ubuntu.com/ubuntu/ trusty/universe libregina3 i386 3.6-2 [248 kB]
Alınıyor: 3 http://archive.ubuntu.com/ubuntu/ trusty-updates/main python3-tk i386 3.4.3-1~14.04.2 [22,5 kB]
Alınıyor: 4 http://archive.ubuntu.com/ubuntu/ trusty/universe the i386 3.3~rc1-2 [364 kB]
46 sn.'de 1.175 kB alındı (25,1 kB/s)                                          
debconf: ilklendirilemeyen önyüz: Dialog
debconf: (Dialog önyüzü en az 13 satır boyunda ve 31 sütun genişliğinde bir ekran gerektirir.)
debconf: varsayılan önyüz: Readline
Daha önce seçili olmayan blt paketi seçiliyor.
(Veritabanı okunuyor ... 304914 dosya veya dizin kurulu durumda.)
.../blt_2.4z-7ubuntu2_i386.deb paketi açılmaya hazırlanıyor...
blt (2.4z-7ubuntu2) paketi açılıyor...
Daha önce seçili olmayan libregina3 paketi seçiliyor.
.../libregina3_3.6-2_i386.deb paketi açılmaya hazırlanıyor...
libregina3 (3.6-2) paketi açılıyor...
Daha önce seçili olmayan python3-tk paketi seçiliyor.
.../python3-tk_3.4.3-1~14.04.2_i386.deb paketi açılmaya hazırlanıyor...
python3-tk (3.4.3-1~14.04.2) paketi açılıyor...
Daha önce seçili olmayan the paketi seçiliyor.
.../the_3.3~rc1-2_i386.deb paketi açılmaya hazırlanıyor...
the (3.3~rc1-2) paketi açılıyor...
man-db (2.6.7.1-1ubuntu1) için tetikçiler işleniyor...
doc-base (0.10.5) için tetikçiler işleniyor...
İşleniyor: 3 ' eklenmiş doc-base' dosyası...
Error while merging /usr/share/doc-base/kino-en with /usr/share/doc-base/kino-fr: format html already defined.
Belgeler scrollkeeper ile kaydediliyor...
menu (2.1.46ubuntu1) için tetikçiler işleniyor...
blt (2.4z-7ubuntu2) ayarlanıyor...
libregina3 (3.6-2) ayarlanıyor...
python3-tk (3.4.3-1~14.04.2) ayarlanıyor...
the (3.3~rc1-2) ayarlanıyor...
libc-bin (2.19-0ubuntu6.15) için tetikçiler işleniyor...
menu (2.1.46ubuntu1) için tetikçiler işleniyor...
notebook-pc / # exit
Sonra bu aşağıda verilen betiği boş bir metin editörüne kopyala-yapıştır ile aktarın ve dosyanın ismini kendinize göre belirleyin.Mesela find GUI arama.sh olacak şekilde dosya uzantısı .sh olarak kayıt edip bunu root olarak açılmış dosya yöneticisinde /(root) dizinin içine kes-yapıştır ile taşıyın.Sonra terminalden dosyanın izinleri

Kod: Tümünü seç

chmod +x find GUI arama.sh
yazarak enter tuşuna basınız.

Ardından yönetici/normal olarak açılmış terminalde

Kod: Tümünü seç

 '/herhangi_isim.sh'
olacak şekildearasına yazarak enter tuşuna basınız.Karşınıza kullanıcı arayüzlü find fonksiyonu gelecektir.

Kod: Tümünü seç

#!/usr/bin/python3

import os , subprocess , tkinter
from tkinter import *

from  tkinter.filedialog   import   askdirectory
from  tkinter   import   scrolledtext

def klasorSec():

    folder = askdirectory(initialdir="/home/aspa", title='Klasor Secin')

    isim=str(folder)
    print(isim)

    klasorAl.insert(0,isim)

def ara():
    klasor=klasorAl.get()
    dosyaAdi=isimAL.get()

    yol2='find '+klasor+ ' -name' + " '"+dosyaAdi+"'"

    a=subprocess.check_output([yol2],shell=True)

    metin.insert(END, a.decode())

    #print(a.decode())

pencere = Tk()
pencere.title("DOSYA  ARA")
pencere.geometry("570x450")
pencere.resizable(False, False)

etiket = Label(text="Konum Sec ", fg="magenta", bg="light green")
etiket.place(x=5, y=5, width=80, height=30)

klasorAl = Entry(pencere)
klasorAl.place(x=100, y=5, width=350, height=30)

btn = Button(text="Dizin Sec ", bg="orange", fg="navy", command=klasorSec)
btn.place(x=470, y=5 ,width=90, height=30)

etiket2 = Label(text="Dosya İsmi Gir ", fg="magenta", bg="light green")
etiket2.place(x=5, y=50, width=80, height=30)

isimAL = Entry(pencere)
isimAL.place(x=100, y=50, width=350, height=30)

btn2 = Button(text="ARA", bg="orange", fg="navy", command=ara)
btn2.place(x=470, y=50 ,width=90, height=30)

metin= Text()
metin.place(x=5, y=100, width=560, height=345)
metin.focus_set()

scroller = Scrollbar(pencere)
scroller.place(x=550, y=415)
Not:

Eğer bu paketi kurmadan betiği çalıştırmaya kalkarsanız bu aşağıdaki hata çıktısını alırsınız

Kod: Tümünü seç

'/find Komutunu GUI Olarak Kullanın.sh' 
Traceback (most recent call last):
  File "/usr/lib/python3.4/tkinter/__init__.py", line 39, in <module>
    import _tkinter
ImportError: No module named '_tkinter'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/find Komutunu GUI Olarak Kullanın.sh", line 3, in <module>
    import os , subprocess , tkinter
  File "/usr/lib/python3.4/tkinter/__init__.py", line 41, in <module>
    raise ImportError(str(msg) + ', please install the python3-tk package')
ImportError: No module named '_tkinter', please install the python3-tk package
Bu hata çıktısında 39.satırda pyhton'un bir modüle çağrısının olumsuz olarak (ImportError: No module named '_tkinter') geri döndüğünden bahsedilmiş ve hatanın önlenmesi için pyhton paket modül dosyasının yüklenmesi önerilmiş (ImportError: No module named '_tkinter', please install the python3-tk package) pc kullanıcısına....

SONUÇ:

Resim
Resim

Güle güle kullanın :)

Not:

'/herhangi_bir_isim.sh' gibi komutu alt+F2 ile açılan çalıştır kutucuğuna yazarsanız terminal açmadan gui arayüze ulaşabilirsiniz.
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15570
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2701 kez
Teşekkür edildi: 5602 kez

Dizinlerdeki Dosyaların Toplam Boyutunu MB Olarak Veren Bash Betiği

Mesaj gönderen TRWE_2012 »

Merhablar

Not:

Forum'un Geliştirme Alt Bölümünün altına Bash Shell Scriptleri adında bir alt bölüm açılmalıdır.Böylece .sh uzantısına sahip betikler tek bir yerde olacaktır.

Kod: Tümünü seç

#!/bin/bash

for filesize in $(ls -l . | grep "^-" | awk ' {print $5}')

do

let totalsize=$totalsize+$filesize

done

echo "Total file size in current directory: $totalsize"
Bu kodları bir editöre kopya-yapıştır ile aktarıp masaüstüne "HERHANGİ BİR İSİM.sh" olacak şekilde .sh dosya uzantılı kayıt edin.

Artık bundan bu betik hangi konumda olursa olsun o konumdaki toplam dosyalarının toplam boyutunu MB cinsinden verecektir.

Not:

Oluşturduğunuz dosya'ya sağ tıklayarak özelliklerden Erişim Haklarındaki bu dosyayı çalışabilir tilkini işaretleyin yada terminalden

Kod: Tümünü seç

 chmod +x dosya_adı.sh
yazıp enter tuşuna basın

Örnek Ekran Görüntüsü :

Resim

SONUÇ:

Kod: Tümünü seç

notebook-pc ~ # '/Toplam Dizin Sayısı.sh' 
Total file size in current directory: 59218
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15570
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2701 kez
Teşekkür edildi: 5602 kez

Başlatıcı Oluşturma Adımları" Ve "Uygulaması

Mesaj gönderen TRWE_2012 »

Merhabalar

Bugün LXDE Masaüstü Ortamı kurduktan sonra Başlatıcı'ya ihtiyacım oldu.Arşivimdeki betik dizininde bu sh dosyasını bir türlü bulamayınca yeniden oluşturmaya karar verdim ve oluşturdum.Ama aklıma neden bunu forum da konu olarak açıp herkes faydalanmasın ki dedim ve konuyu ilgili yere açtım.

Yalnız konuya geçmeden önce forum yöneticisinden ricam "Bash Shell Betikleri" için bir alt bölüm açılabilir mi? Böylece bu betikler hepsi bir yerde olur.....

Şimdi konumuza dönenim

1.Adım.

Boş bir metin editörü açın (tavsiyem Gnome Editör (gedit))

Kod: Tümünü seç

#!/bin/bash
gnome-desktop-item-edit ~/Masaüstü/ --create-new
ifadesini boş olan metin editörüne aktarın ve ardından "Farklı Kayet (Save As)" komutu ile dosya uzantısı .sh olacak şekilde herhangi bir isimle kayıt edin.Mesela Başlatıcı Oluştur.sh gibi

2.Adım.

Oluşturduğunuz .sh uzantılı dosyayı çalışabilir yapmak için

2.1.Terminal'de komut satırında

Kod: Tümünü seç

$ chmod +x Başlatıcı Oluştur.sh
yazıp enter tuşuna basın
2.2.Ya da dosyaya sağ tıklayıp, Özelliklerden Çalışabilir tikini işaretleyin

3.Adım.

Bu oluşturmuş olduğunuz dosyayı istediğiniz konumda muhafaza edebilirsiniz.Ben /(root) kök dizinin içine yerleştirip buradan masaüstüne sembolik bağ (kısayol) oluşturdum.

4.Adım.

Sonuç:

Resim
Resim
Resim
Resim

Eğer betiği nautilus dosya yöneticisine dahil etmek isterseniz betiği şöyle düzenleyin

Kod: Tümünü seç

#!/bin/bash
gnome-desktop-item-edit "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" --create-new
Not:

Unutmuşum,(konuyu en az 4-5 defa gelir gider baştan aşağı okur okur gene okur imla, unutulmuş yazıları eklerim)

Eğer oluşturduğunuz kısayolun(sembolik bağ'ın) root yetkilerle başlatılmasını istiyorsanız komutun en başına

1.GNUSU PAKETİ YÜKLÜ İSE:

Kod: Tümünü seç

gnusu mate-system-monitör
2.GKSU PAKETİ YÜKLÜ İSE

Kod: Tümünü seç

gksu mate - system -monitör
şeklide yazabilirsiniz.
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15570
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2701 kez
Teşekkür edildi: 5602 kez

Dosya/Dizin Bash Shell İle Şifreleme

Mesaj gönderen TRWE_2012 »

Öncelikle aşağıdaki paket yüklenmelidir sistem'e

Kod: Tümünü seç

# apt-get -u install -ff pinentry-gui
Not:

Paketin bağımlı olduğu deb paketleri

1.libgpg-error0_1.21-2ubuntu1_i386.deb
2.lib6.deb

Betik

Kod: Tümünü seç

!/bin/bash
echo "Hoş geldiniz, sizin için bir dosyayı / klasörü şifrelemeye hazırım"
echo "şu anda bir sınırlama var, beni şifrelenecek bir dosyanın bulunduğu aynı klasöre yerleştirin"
echo "Uzantılı Tam Dosya Adını girin"
read file;
gpg -c $file
echo "Dosyayı başarıyla şifreledim ...."
echo "Şimdi orijinal dosyayı kaldıracağım"
rm -rf $file
Dosyayı Çalışabilir Yapmak İçin:

Kod: Tümünü seç

# chmod 755 Encrypt.sh
Dosyayı Çalıştırma

Kod: Tümünü seç

# ./Encrypt.sh
Not:

Şifrelenen dosyayı çözmek için

1.sh betiği ile şifreli dosya aynı dizin içinde olmalı
2.Şifre doğru girilmeli....
3.Şifreleme yapmadan önce orjinal dosyanın yedeği tar.gz şeklinde alınmalı başka bir konuma
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15570
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2701 kez
Teşekkür edildi: 5602 kez

Sunucu Veya Yerel Makinanın Durumunu Veren Betik

Mesaj gönderen TRWE_2012 »

Kod: Tümünü seç

#!/bin/bash
    date;
    echo "uptime:"
    uptime
    echo "Currently connected:"
    w
    echo "--------------------"
    echo "Last logins:"
    last -a |head -3
    echo "--------------------"
    echo "Disk and memory usage:"
    df -h | xargs | awk '{print "Free/total disk: " $11 " / " $9}'
    free -m | xargs | awk '{print "Free/total memory: " $17 " / " $8 " MB"}'
    echo "--------------------"
    start_log=`head -1 /var/log/messages |cut -c 1-12`
    oom=`grep -ci kill /var/log/messages`
    echo -n "OOM errors since $start_log :" $oom
    echo ""
    echo "--------------------"
    echo "Utilization and most expensive processes:"
    top -b |head -3
    echo
	top -b |head -10 |tail -4
    echo "--------------------"
    echo "Open TCP ports:"
    nmap -p- -T4 127.0.0.1
    echo "--------------------"
    echo "Current connections:"
    ss -s
    echo "--------------------"
    echo "processes:"
    ps auxf --width=200
    echo "--------------------"
    echo "vmstat:"
    vmstat 1 5
Not:

Kod: Tümünü seç

# chmod 755 Server-Health.sh

Kod: Tümünü seç

# ./Server-Health.sh
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15570
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2701 kez
Teşekkür edildi: 5602 kez

Linux'da Log Dosyalarını Silmek İçin İki Yöntem

Mesaj gönderen TRWE_2012 »

1.Yöntem (kısa)

Kod: Tümünü seç

#!/bin/bash
# delete every file that's between 5 and 40 days old
for i in {5..40}; do 
    olddate=$(date --date="$i days ago" +%Y-%m-%d)
    echo "Deleting files from $olddate..."
    rm "Log_file_$olddate-*"
done
2.Yöntem (Uzun) [Log + Dizinleri Siler]

Kod: Tümünü seç

#!/bin/bash
 
# Usage: cleanup_old_logs &lt;folder&gt; &lt;days&gt;
# Removes all log files in the directory older than a certain number of days
 
FOLDER=$1
N_DAYS=$2
 
# Validate
if [ "$FOLDER" == "" ] || [ "$N_DAYS" == "" ]
then
echo "Usage: $0 folder number_of_days"
exit 1
fi
 
if [ ! -d "$FOLDER" ]
then
echo "$FOLDER is not a directory"
exit 2
fi
 
# Remove
echo "Deleting files in $FOLDER older than $N_DAYS days"
find $FOLDER/* -mtime +$N_DAYS -exec rm {} \;
Not:

Kod: Tümünü seç

chmod a+x dosya_adı.sh

Kod: Tümünü seç

./dosya_adı.sh
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15570
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2701 kez
Teşekkür edildi: 5602 kez

Kayıtlı Kullanıcı Kontrolü

Mesaj gönderen TRWE_2012 »

Kod: Tümünü seç

#!/bin/bash

echo "Enter username"
read username
echo "Enter password"
read password
if [[ ( $username == "admin" && $password == "secret" ) ]]; then
echo "valid user"
else
echo "invalid user"
fi
Not:

Kod: Tümünü seç

chmod a+x dosya_adı.sh

Kod: Tümünü seç

./dosya_adı.sh
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15570
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2701 kez
Teşekkür edildi: 5602 kez

Sayı Tahmin Etme Oyunu

Mesaj gönderen TRWE_2012 »

Kod: Tümünü seç

#!/bin/bash

echo "Bir numara girin"
read n
if [[ ( $n -eq 15 || $n  -eq 45 ) ]]
then
echo "Oyunu kazandın"
else
echo "Oyunu kaybettin"
fi
Not:

Kod: Tümünü seç

chmod 755 game.sh

Kod: Tümünü seç

./game.sh
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15570
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2701 kez
Teşekkür edildi: 5602 kez

Dosya İsim Değiştiricisi

Mesaj gönderen TRWE_2012 »

Kod: Tümünü seç

#!/bin/sh 
             # renna: rename multiple files according to several rules 
             # written by felix hudson Jan - 2000 
             
             #first check for the various 'modes' that this program has 
             #if the first ($1) condition matches then we execute that portion of the 
             #program and then exit 
             
             # check for the prefix condition 
             if [ $1 = p ]; then 
             
             #we now get rid of the mode ($1) variable and prefix ($2) 
               prefix=$2 ; shift ; shift 
             
             # a quick check to see if any files were given 
             # if none then its better not to do anything than rename some non-existent 
             # files!! 
              
               if [$1 = ]; then 
                  echo "no files given" 
                  exit 0 
               fi 
             
             # this for loop iterates through all of the files that we gave the program 
             # it does one rename per file given 
               for file in $* 
                 do 
                 mv ${file} $prefix$file 
               done 
             
             #we now exit the program 
               exit 0 
             fi 
             
             # check for a suffix rename 
             # the rest of this part is virtually identical to the previous section 
             # please see those notes 
             if [ $1 = s ]; then 
               suffix=$2 ; shift ; shift 
             
                if [$1 = ]; then 
                 echo "no files given" 
                exit 0 
                fi 
             
              for file in $* 
               do 
                mv ${file} $file$suffix 
              done 
             
              exit 0 
             fi 
             
             # check for the replacement rename 
             if [ $1 = r ]; then 
             
               shift 
             
             # i included this bit as to not damage any files if the user does not specify 
             # anything to be done 
             # just a safety measure 
             
               if [ $# -lt 3 ] ; then 
                 echo "usage: renna r [expression] [replacement] files... " 
                 exit 0 
               fi 
              
             # remove other information 
               OLD=$1 ; NEW=$2 ; shift ; shift 
             
             # this for loop iterates through all of the files that we give the program 
             # it does one rename per file given using the program 'sed' 
             # this is a sinple command line program that parses standard input and 
             # replaces a set expression with a give string 
             # here we pass it the file name ( as standard input) and replace the nessesary 
             # text 
             
               for file in $* 
               do 
                 new=`echo ${file} | sed s/${OLD}/${NEW}/g` 
                 mv ${file} $new 
               done 
             exit 0 
             fi 
             
             # if we have reached here then nothing proper was passed to the program 
             # so we tell the user how to use it 
             echo "usage;" 
             echo " renna p [prefix] files.." 
             echo " renna s [suffix] files.." 
             echo " renna r [expression] [replacement] files.." 
             exit 0 
             
             # done!
Not:

Kod: Tümünü seç

chmod 755 rename.sh

Kod: Tümünü seç

./rename.sh
Not 2: (Kısa sh betiği)

Kod: Tümünü seç

#!/bin/bash 
     # renames.sh 
     # basic file renamer 

     criteria=$1 
     re_match=$2 
     replace=$3 
     
     for i in $( ls *$criteria* ); 
     do 
         src=$i 
         tgt=$(echo $i | sed -e "s/$re_match/$replace/") 
         mv $src $tgt 
     done
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15570
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2701 kez
Teşekkür edildi: 5602 kez

Basit Yedekleme Bash Shell

Mesaj gönderen TRWE_2012 »

Kod: Tümünü seç

#!/bin/bash          
A="/home/" 
B="/var/backups/" 
C=home-$(date +%Y%m%d).tgz 
tar -cZf $A$C $B
Not:

Kod: Tümünü seç

chmod 755 yedekleme.sh

Kod: Tümünü seç

./yedekleme.sh
Not:

B değişkenini kendinize göre değiştirin
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15570
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2701 kez
Teşekkür edildi: 5602 kez

Uzun Yedekleme Betiği

Mesaj gönderen TRWE_2012 »

Kod: Tümünü seç

#!/bin/bash
# Bir yedekleme örneği
# -Buraya bir açıklama girin- -Buraya tarih girin-

if [ $# != 1 ]
then
clear
echo Kullanım: Yedeklenecek klasörü belirten 1 tek klasör adı girmelisiniz.
exit
fi

if [ ! -d /tmp/$1 ]
then
clear
echo 'Adını verdiğiniz klasör bulunmuyor. Yeni klasör ve içeriği oluşturulacak'
mkdir /tmp/$1&&touch /tmp/$1/dosya1.txt /tmp/$1/dosya2.txt
echo /tmp Klasörüne $1 Klasörü ve içeriği oluşturuldu.
sleep 5
fi

echo ---------------------------
date=`date +%F`

# Bugün yedeği alınmış başka bir klasör var mı diye bakılsın mı?

if [ -d /tmp/backups/$1_$date ]
then
echo 'Bu klasörün bugün yedeği alınmış. Yine de üstüne yazılsın mı?'
read answer
    if [ $answer != 'y' ]
    then
    exit
    fi
else
mkdir -p /tmp/backups/$1_$date
echo /tmp Klasörüne /backup klasörü ve $1_$date Klasörü oluşturuldu.
sleep 5
fi

cp -R /tmp/$1 /tmp/backups/$1_$date
echo /tmp klasöründe bulunan $1 klasör içeriği /tmp/backups/$1_$date klasörüne yedeklendi.
sleep 5

echo Yedekleme tamamlandı.
echo isterseniz /tmp/$1 klasörünü ve
echo /tmp/backups/$1_$date klasörünü silebilirsiniz.
echo /tmp klasörü sisteminizi kapattığınızda kendisi zaten silinir.
sleep 1

echo ESAS KLASÖR İÇERİĞİ
ls -l /tmp/$1
sleep 1

echo YEDEKLENEN KLASÖR İÇERİĞİ
ls -l /tmp/backups/$1_$date/$1/
echo Script sona erdi…
Not:

Kod: Tümünü seç

# chmod 755 longbakup.sh

Kod: Tümünü seç

# ./longbakup.sh
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15570
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2701 kez
Teşekkür edildi: 5602 kez

GNU-Linux Dağıtımlarında "awk" Kavramı

Mesaj gönderen TRWE_2012 »

Tanım:

Unix'in özelliklerini de taşıyan oldukça güçlü bir "yığın dilidir." Awk, Unix kabuğunun dosya işleme arabirimlerine, "C" benzeri yapısal programlama gibi bir çok ilave getirir.İsmini üç geliştiricisinin soyadlarının baş harfinden alan (aho, weinberger, kernighan) programlama dili.. Bizzat awk'yi geliştirenler awk'yi şoyle tanimlamışlardır:

ENG:
"awk is a convenient and expressive programming language that can be applied to a wide variety of computing and data-manipulation tasks."
TUR:
"awk, çok çeşitli bilgi işlem ve veri işleme görevlerine uygulanabilen kullanışlı ve etkileyici bir programlama dilidir."
Genel Komut Yapısı:

Kod: Tümünü seç

awk komutlar dosya
awk sunları yapabilirsiniz:

- küçük kişisel veritabanlarınızı yönetebilir, formatlı raporlar oluşturabilirsiniz..
- veriler üzerinde aritmetik ve string operasyonlarını gerçekleştirebilirsiniz..
- genel programlama yapılarını kullanabilir (kıyas operatörleri, döngüler v.s.)..
- kabukta bir komutun çıktısını on-the-fly işleyebilir ve başka bir komutun girdisi olacak şekilde formatlayabilirsiniz..
- doğru yerde kullandığınızda c, pascal gibi dillerle -nispeten- zor olan operasyonları tek satırda gerçekleştirebilirsiniz..
- network soketlerine erisim bile saglayabilirsiniz (fakat erisim saglayabiliyorsunuz diye erismeniz gerekmez).

Bunun yanında awk yorumlanan bir dildir, yani awk kodları tek başına çalıştırılabilir bir uygulamaya dönüştürülemez (c ve pascal'a dönüsturmek icin bazı yardımcı araclar vardır), awk scriptlerinin bir sistemde çalışabilmesi için o sistemde awk yorumlayıcısının bulunması gerekir.

ÖRNEK BİR KULLANIMLAR VE ANLAMLARI:

Bir dizinin tüm alt dizinlerinde yer alan dosyaların toplam boyutunu aşağıdaki tek satır ile öğrenme

Kod: Tümünü seç

$ find . -type f -exec ls -l {} \; | awk 'BEGİN{z=0}{z+=$5}END{s=sprintf("%.2f", z/(1024*1024));print"toplam="s}'
Root hakları ile calışmayan tüm sureçleri ÖLDURME (Tehlikeli Komut)

Kod: Tümünü seç

# ps aux | awk '$1 !~ /root/ {if(nr > 1) print $2}' | xargs kill -9
Linux'da Kayıtlı Kullanıcıları Görüntüleme:

Kod: Tümünü seç

awk -F: '{print $1}' /etc/passwd

Kod: Tümünü seç

awk -F: 'BEGIN {print "### Kullanıcı listesi ###"} {print $1}' /etc/passwd
Çevre Değişkenlerini Görüntüleme

Kod: Tümünü seç

awk '

BEGIN{

print ENVIRON["PATH"]

}'
PDF Dökümanlar

https://doc.lagout.org/operating system /linux/Sed %26 Awk.pdf
https://www.gnu.org/s/gawk/manual/gawk.pdf
https://catonmat.net/ftp/awk.cheat.sheet.pdf
https://silo.tips/download/a-murat-eren-awk-programlama-dili
(Not:Yukarıdaki indirme bağlantısı geçersiz olduğundan buradaki veri ekran görüntüsü yazılımı ile ekran kayıtları alınıp PDF Dosyasına TRWE_2012 tarafından dönüştürülmüştür.)
Yeni bağlantı : https://yadi.sk/d/TB3W9xRiip1uig
Cevapla

“Linux ve Unix tabanli isletim sistemleri” sayfasına dön