Linux: SSH Keygen ve SSH nickname

Bir sunucuya ssh ile çok sık bağlantı yapıyorsanız her seferinde şifre girmemek için  bilgisayarınızda aşağıdaki şekilde keygen üretip, bu keygeni bağlantı yapmak istediğiniz sunucuya göndermeniz gerekmektedir. Aşağıdaki şekilde bu işlemi yapabilirsiniz.

ssh-keygen -t rsa
ssh-copy-id -i $HOME/.ssh/id_rsa.pub user@server

ssh-copy-id kullanmak yerine ayrı bir yöntem de cat .ssh/id_rsa.pub komutu ile key’i görüntülemek ve sonra bu key’i bağlanılacak olan sunucuda .ssh/authorized_keys dosyasının içerisine eklemektir.

Sunucuya nickname işe giriş yapabilmek için ise ; ~/.ssh/config dosyası aşağıdaki şekilde ayarlanmalı. Bu durumda sunucuya ssh root@nuhazginoglu.com -p 2123  şeklinde bağlanmak yerine ssh nuh şeklinde kolayca bağlanabilirsiniz.

Host nuh
  User root
  HostName nuhazginoglu.com
  Port 2123 (ssh portunuz 22 ise, bu satıra gerek yok.)

Linux: Rename extension of multiple file in a folder

I sometimes need to change extension of multiple files in a folder. So I wrote a bash script to do this easily. And I am sharing it from here. It’s simple to use it. For example; you have a folder named folder1 and it has files with the extension ‘.abc‘ in it. And you want to change ‘.abc‘ extension with ‘.txt‘. The only thing you must do is run the commandline bottom;

bash rename_extension.sh abc txt /dir1/dir2/folder1

You can download script from here.

[pastacode lang=”bash” manual=”%23!%2Fbin%2Fbash%0A%0A%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%0A%23%20%20C*%20%20%20%20%20%20%20%20%20%20rename_extension.sh%20%20%20%20%20%20%20%20%20%20%20C*%20%20%23%0A%23%20%20C*%20%20%20%20%20%20%20written%20by%20Nuh%20Azginoglu%20%20%20%20%20%20%20%20%20C*%20%20%23%0A%23%20%20C*%20%20%20%20%20%20%20%20%20%20%20February%2009%2C%202016%20%20%20%20%20%20%20%20%20%20%20%20C*%20%20%23%0A%23%20%20C*%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20C*%20%20%23%0A%23%20%20C*%20%20renames%20files%20with%20new%20extension.%20%20%20%20%20C*%20%20%23%0A%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%23%0A%0Aecho%20%22usage%3A%20bash%20rename_extension.sh%20old_extension%20new_extension%20directory%22%0A%0A%0Aold_extension%3D%241%0Anew_extension%3D%242%0Adirectory%3D%243%0A%0Afor%20file%20in%20%24directory*.%24old_extension%3B%20do%0A%20%20%20%20mv%20%22%24file%22%20%22%24directory%60basename%20%24file%20.%24old_extension%60.%24new_extension%22%0Adone” message=”” highlight=”” provider=”manual”/]

Yazının Türkçe versiyonuna buradan erişebilirsiniz.

 

Centos 7 Kurulum “This program has encountered an unknown error. You may report the bug below or quit the program.” Hatası

Yeni bir sunucuya Centos 7 kurarken disk seçimini yapıp Begin Installation diyerek kurulumu başlattıktan sonra “This program has encountered an unknown error. You may report the bug below or quit the program.” hatası alıyorduk.

centos_error

Sıkıntı şu imiş; disk ve partition ayarlamasında dikkat edilmesi gerekiyor. I will configure partioning dedikten sonra Partitioning Scheme seçeneğinden Standart Partition‘ı seçtim. Hemen üzerindeki Click here to create them automatically seçeneğine tıkladım. Buradan swap ve kurulumun yapılacağı dizini seçip istediğim boyutları ayarladıktan sonra tekrar denediğimde sorun halloldu. Yani aslolan bu problemde aslolan nokta kurulum diskinin dikkatli bir şekilde ayarlanmasıymış.

Ubuntu 16.04: zfs partition import

NAS olarak kullandığımız Freebsd tabanlı Freenas işletim sistemli sunucu geçenlerde takıldı. Sunucunun işletim sistemi 16 gb’lık bir usb diskte, veriler ise ZFS (Zettabyte File System) dosya sistemli diskte idi. İşletim sistemi açılıyor fakat bahsettiğim ZFS dosya sistemli diski mount etme aşamasında kalıyor, bir süre sonra da kernel panic uyarısı veriyordu. Öncelikle işletim sistemi ile bir ilgili bir sıkıntı olabilir düşüncesiyle daha önce yedeklediğimiz işletim sistemini başka bir usb ile çalıştırmayı denedik yine aynı hatayı aldık. Sorun muhtemelen ZFS’deki bozulmadan dolayıdır diye düşünüp, başka bir usb diske Ubuntu 16.06 kurduk. Kurulum tamamlandıktan sonra aşağıdaki sıralamayı izledik. Öncelikle ZFS’yi kurduk (1). Daha sonra lsblk komutuyla partition’ı görüp görmediğini kontrol ettik. Herhangi bir sorun görünmüyordu. sudo zpool import komutu bizim zfs partition’ımızın bilgileri bize gösterdi. Önceki sistemde depo isminde bulunan partition aynı isim ve boyutta görülüyordu. Daha sonra depo ismindeki bu partition’ı import etmek istedik (4). Bize zaten böyle bir isimde bir pool’un olduğunu ve bu pool’a başka bir sistem tarafından son erişildiği tarihi de bilgi olarak verdi ve yine de import etmek istiyorsak -f parametresini kullanmamız gerektiğini bildirdi (5). Son olarak sudo zpool import kutu -f komutuyla işlemi tamamladık. Import etmesi partition’ın büyüklüğüne göre zaman alabilmekte. Bizimki yaklaşık bir saat sürdü.

İşin ilginç yanı Ubuntu import ettikten sonra, acaba dosya sistemindeki hatayı düzeltmiş midir sorusu aklıma takıldı. Freenas’ın kurulu olduğu usb diski takarak sistemi yeniden başlattım ve gördüm ki sorun o tarafta da düzelmişti. Freenas düzgün bir şekilde import ederek çalışması sürdürdü.

  1. /etc/apt/sources.list –> deb http://us.archive.ubuntu.com/ubuntu/ xenial universe 
  2. sudo apt-get install zfsutils-linux zfs-initramfs zfs-dkms zfs-zed
  3. lsblk
  4. sudo zpool import
  5. sudo zpool import depo
  6. cannot import ‘depo’: pool may be in use from other system, it was last accessed by(hostid: 0x4e8a3223) on Tue Feb 23 09:32:14 2016
  7. sudo zpool import depo -f

WordPress’e geçiş

Blog yazmaya 2008 yılında başlamıştım. Dile kolay tam sekiz yıl olmuş. O dönem .net’e yatkınlığımdan dolayı blog servisi olarak blogengine’de karar kılmıştım. Aradan geçen zamanda blogengine birçok .net yada Microsoft projesi gibi uçtu gitti. Geliştirilmesi durdu. Öte yandan wordpress ise aldı başını gitti. Her yönden çok iyi bir blog servisi oldu diyebiliriz. Velhasıl sonunda wordpress’e geçmeye karar verdim.

Öncelikle Linux bir bilgisayarda LAMP + wordpress kurarak test ortamı oluşturdum. Mevcut blogumun rss 2.0 feed’ini yeni kurduğum wordpress’e import ettim. Post’lar tag ve yorumlar dışında sıkıntısız bir şekilde aktarıldı. Ayrıca daha önce blogengine’i güncellerken yaşadığım postlardaki resim problemi de vardı. Resimleri linklerini güncellemem gerekiyordu. Bunun dışında her hangi bir problem yaşanmadı. Test ortamında problem olmayınca hosting servisimi Windows’tan Linux’a geçirdim ve wordpress’i kurdum. Daha sonra postlarda yapmam gereken düzeltmeleri yaparak son haline getirdim ve bugün itibariyle blog yeni alt yapısı ve tasarımıyla kullanıma hazır hale geldi. Bu noktadan sonra wordpress’in geniş plugin imkanlarını kullanarak blogu daha kullanışlı hale getirmeye çalışacağım. Bu arada wordpress’i tavsiye ederim. wordpress

Proxmox: “You do not have a valid subscription for this server. Please visit www.proxmox.com to get a list of avaliable options” uyarısını kaldırma

Eğer Proxmox’tan lisans satın almayıp ücretsiz versiyonunu kullanıyorsanız Proxmox 3 versiyonundan itibaren login olunduktan sonra ‘You do not have a valid subscription for this server. Please visit www.proxmox.com to get a list of avaliable options‘ uyarısı ile karşılaşıyorsunuz demektir. Her login olunduğunda bu uyarının gelmesi can sıkıcı olabiliyor. Bu uyarıdan kurtulmak ise mümkün. /usr/share/pve-manager/ext4/ (Proxmox 4 versiyonu için /usr/share/pve-manager/ext6/) dizini altındaki pvemanagerlib.js isimli javascript dosyasında ufak bir değişiklik yapmamız gerekiyor. Öncelikle bu dosyasının bir yedeğini almanız çıkabilecek her hangi bir sorun için önemli. Yedeği aldıktan sonra bir text editör vasıtasıyla bu dosyayı açıyoruz ve if (data.status !== ‘Active’) { satırını  if (false) { satırı ile değiştiriyoruz. Hepsi bu kadar tarayıcınız ön belleğini sildikten sonra loginlerinizde artık bu hatayı almayacaksınız. 

Linux: USB’deki işletim sistemini başka bir diske kopyalama

Bir sunucunun USB diske kurduğum işletim sistemini her ihtimale karşı yedeklemek istemiştim. Aşağıdaki komutlarla başka bir USB diske basit bir şekilde yedeğini aldım.

dd if=/dev/currentdisk of=/dev/newdisk bs=512k

Kullanıcının home dizinini /var/www dizini altına koyma

Bir kullanıcının home dizinini /var/www altına almak için (yada başka bir dizine) aşağıdaki yöntemi kullanabilirsiniz.

usermod -m -d /var/www/foldername <username>
sudo adduser <username> www-data
sudo chown -R www-data:www-data /var/www/foldername
sudo chmod -R g+rwX /var/www/foldername