commodore.gen.tr

Genel Kategori => Genel Sohbet => Konuyu başlatan: Simon (Özay Turay) üzerinde Nisan 26, 2016, 01:01:02 ÖÖ



Konu Başlığı: Linux Bash Maceralarım
Gönderen: Simon (Özay Turay) üzerinde Nisan 26, 2016, 01:01:02 ÖÖ
Bu başlık ilkerficicilar hocam için gelsin. :D

DOS'ta batch dosyalarıyla haşır neşir olmayı sevdiğimi herkes bilir. Ama tam zamanlı çalışan bir Ubuntu Server sahibi olarak bash ile de haşır neşir olmayı aynı ölçüde seviyorum. 8)

Bu akşam http://www.whdownload.com (http://www.whdownload.com) sitesindeki tüm dosyaları nasıl indiririm diye düşünürken linux üzerinde bash ile yapayım bu sefer bari dedim. Buradan da kullandığım komutları referans olsun diye veriyorum. ;)

Öncelikle Google Chrome ile açtığım http://www.whdownload.com (http://www.whdownload.com) sitesinde ALL linkine tıklayıp açılan sayfada boş bir yere sağ tıklayıp Sayfa kaynağını görüntüle (Ctrl+U) yapıp açılan sekmede yine boş bir yere sağ tıklayıp Farklı kaydet... (Ctrl+S) ile bir isim vererek (ben wh.html seçtim) Web sayfası, Sadece HTML biçiminde kaydettim. Bu kaydetme işlemi başka bir browserdan da benzer komutlarla yapılabilir.

Bu wh.html dosyasını Linux PC'ye aktardım ve PuTTY yardımıyla Linux PC'nin komut satırına bağlandım. Tüm komutlar wh.html dosyasıyla aynı klasörde çalıştırılmalı.

Önce grep ile linklerin sayısı tutuyor mu ona bakalım. Kaydettiğimiz sayfanın en altında 3384 dosya olduğu yazıyor.

cat wh.html | grep -c "games/"

3384 sonucunu gördük, doğru yoldayız. :)

cat wh.html | grep "games/"

komutu ile sadece dosya linklerinin olduğu satırları ekranda görmemiz lazım. Ancak liste "Binary file (standard input) matches" hatası ile yarıda kesiliyor. Onun da çözümü -a parametresi ile grep'e sadece text formatında çalışmasını söylemekmiş.

cat wh.html | grep -a "games/"

Evet şimdi oldu ancak listenin başında ve sonunda fazlalıklar var. Önce baştaki dört boşluk karakteri ve <td><a href=" dizisinden kurtulalım ve yerine http://www.whdownload.com/ (http://www.whdownload.com/) adresini getirelim.

cat wh.html | grep -a "games/" | sed 's/    <td><a href="/http:\/\/www.whdownload.com\//g'

Oldu da bitti maşallah. Başa eklediğimiz http://www.whdownload.com/ (http://www.whdownload.com/) adresindeki / karakterlerini \ ile nasıl escape'lediğimize dikkat. ;)

Şimdi de sondaki fazlalıklardan kurtulalım. Bu sefer egrep komutu yardımıyla satırların sadece " karakterinde kadar olan kısmını alıyoruz.

cat wh.html | grep -a "games/" | sed 's/    <td><a href="/http:\/\/www.whdownload.com\//g' | egrep -o '^[^"]+'

Liste istediğimiz hale geldiğine göre şimdi de bunu bir metin dosyasına kaydedelim.

cat wh.html | grep -a "games/" | sed 's/    <td><a href="/http:\/\/www.whdownload.com\//g' | egrep -o '^[^"]+' > whlinks.txt

Artık tüm dosyaların linkleri elimizde olduğuna göre destekleyen bir programa bu dosyayı gösterip hepsini indirebiliriz. Ama durun madem her şeyi Linux'tan hallettik dosyaları da o indirsin bari. Bu sefer de imdadımıza wget komutu bir sürü karışık parametresiyle yetişiyor. :)

wget -r -H -nc -np -nH --cut-dirs=1 -e robots=off -l1 -i ./whlinks.txt

Artık arkamıza yaslanıp bir Türk olarak 3384 adet dosyanın inmesini izlemekten başka yapacak bir işimiz kalmadı. Yaşasın Linux, Yaşasın GNU, Yaşasın bash. :D

Not: Tabi ki oturup izleyecek halimiz yok, Linux'a da PuTTY ile bağlandık peki download bitene kadar Windows PC de mi açık kalacak. Tabi ki hayır, bu sefer de imdadımıza screen komutu yetişiyor. Bu komut ile sanal bir teminal açıp indirme komutumuzu onuniçinden çalıştırarak PuTTY oturumunu kapatabiliriz. Daha sonra indirme durumunu kontrol etmek istersek bu sanal terminale tekrar bağlanabiliriz tabi ki.

Sanal terminal açmak için:

screen -A -m -d -S terminal-ismi /bin/bash

Bağlantıyı kesmek için Ctrl+A hemen peşinden D tuşlarına başıyoruz.

Tekrar bağlanmak için:

screen -r terminal-ismi

Birden fazla sanal terminali farklı isimler vermek koşuluyla açabilirsiniz. ;)

Bu akşamlık bu kadar bash komutu ve Linux yeter sanırım. Hepinize bol Linux'lu günler. ::)


Konu Başlığı: Ynt: Linux Bash Maceralarım
Gönderen: hakanzade üzerinde Nisan 26, 2016, 01:26:56 ÖÖ
Flashget ile indirdiydim sayfaya sağ tıklayıp tümünü indir diyerek :), sizin yol daha çetrefilliymiş.


Konu Başlığı: Ynt: Linux Bash Maceralarım
Gönderen: Simon (Özay Turay) üzerinde Nisan 26, 2016, 01:42:50 ÖÖ
Flashget ile indirdiydim sayfaya sağ tıklayıp tümünü indir diyerek :), sizin yol daha çetrefilliymiş.

Adım adım anlattım diye öyle gözüküyor, sadece iki komut kullanılıyor aslında. ;)

cat wh.html | grep -a "games/" | sed 's/    <td><a href="/http:\/\/www.whdownload.com\//g' | egrep -o '^[^"]+' > whlinks.txt
wget -r -H -nc -np -nH --cut-dirs=1 -e robots=off -l1 -i ./whlinks.txt


Konu Başlığı: Ynt: Linux Bash Maceralarım
Gönderen: ilkerficicilar üzerinde Nisan 26, 2016, 07:15:14 ÖÖ
Oooo başlık bana, ben başlığa gelmişim :) Başlıkta Linux'u görünce atladım hemen.

Gerçi lynx yüklüyse, tembel işi şu şekilde de mümkün:

lynx -dump "http://www.whdownload.com/games.php?name=%&sort=0&dir=0" |cut -b7- |grep "games/"|wget -i -


Yalnız, lynx de İsviçre çakısı gibi. C64'le CGTR'ye girmeye kasarken bile lynx kullanıyorum :)

Bu arada, C64'te LUnix işletim sisteminde de buna benzer komut ekleme yapabiliyoruz. Sadece | yerine ! kullanılıyor.


Konu Başlığı: Ynt: Linux Bash Maceralarım
Gönderen: Simon (Özay Turay) üzerinde Nisan 26, 2016, 09:17:44 ÖÖ
Evet bu biraz hileli çözüm olmuş lynx'in dump parametresi sayesinde ama çok daha pratikmiş. :)

Bir ek bilgi de benden gelsin o zaman, bu tarz bir siteye sürekli yeni dosyalar ekleniyorsa wget'in -N parametresiyle sunucuda daha yenisi bulunmayan dosyaların tekrar download edilmesi engellenebilir. ;)

lynx -dump "http://www.whdownload.com/games.php?name=%&sort=0&dir=0" | cut -b7- | grep "games/" | wget -N -i -


Konu Başlığı: Ynt: Linux Bash Maceralarım
Gönderen: Simon (Özay Turay) üzerinde Nisan 26, 2016, 10:46:39 ÖÖ
Biri indirmek ve local/remote dosya sayısını saymak için diğeri de sadece saymak için iki script yaptım. Bu saatten sonra whdownload.com sitesi güncellenmez ama (başka kaynaklarda güncellemeler var grupta paylaşmıştım) scriptler başka bir şekilde iş görebilir diye buradan da paylaşayım.

whdownload

#!/bin/bash

clear
echo "Downloading Files From WHDownload.com All Games"
echo ""
lynx -dump "http://www.whdownload.com/games.php?name=%&sort=0&dir=0" | cut -b7- | grep "games/" > whdlist.txt
wget -N -r -nH -np -i whdlist.txt
echo ""
echo "Counting Files in Local & Remote Copies"
echo ""
echo Local: $(find ./games -type f | grep -c "")
echo Remote: $(cat whdlist.txt | grep -c "")
echo ""
echo "Download Complete..."
echo ""

read -s -n 1 -p "Press any key to continue..."


whcount

#!/bin/bash

clear
echo "Counting Files in Local & Remote Copies of WHDownload.com All Games"
echo ""
echo Local: $(find ./games -type f | grep -c "")
lynx -dump "http://www.whdownload.com/games.php?name=%&sort=0&dir=0" | cut -b7- | grep "games/" > whdlist.txt
echo Remote: $(cat "whdlist.txt" | grep -c "")
echo ""

read -s -n 1 -p "Press any key to continue..."


Konu Başlığı: Ynt: Linux Bash Maceralarım
Gönderen: Simon (Özay Turay) üzerinde Nisan 26, 2016, 12:01:54 ÖS
Bu arada sitede 3384 dosya var gibi görünüyor ama aslında 3359 dosya varmış, şu oyunlar ikişer kere listelenmiş, haberiniz olsun benim gibi tırmalamayın sonra. :D

http://www.whdownload.com/games/Update-2011-07-17/Arena_v1.2.zip
http://www.whdownload.com/games/Update-2011-07-17/ArtOfChess_v1.1_1008.zip (http://www.whdownload.com/games/Update-2011-07-17/ArtOfChess_v1.1_1008.zip)
http://www.whdownload.com/games/Update-2011-07-17/AssassinSpecialEdition_v1.2.zip (http://www.whdownload.com/games/Update-2011-07-17/AssassinSpecialEdition_v1.2.zip)
http://www.whdownload.com/games/Update-2011-07-17/AtomSmasher_v1.0.zip (http://www.whdownload.com/games/Update-2011-07-17/AtomSmasher_v1.0.zip)
http://www.whdownload.com/games/Update-2011-07-17/AtomicRoboKid_v1.4_2243.zip (http://www.whdownload.com/games/Update-2011-07-17/AtomicRoboKid_v1.4_2243.zip)
http://www.whdownload.com/games/Update-2011-07-17/Atomix_v1.2_1356.zip (http://www.whdownload.com/games/Update-2011-07-17/Atomix_v1.2_1356.zip)
http://www.whdownload.com/games/Update-2011-07-17/BCKid_v1.2.zip (http://www.whdownload.com/games/Update-2011-07-17/BCKid_v1.2.zip)
http://www.whdownload.com/games/Update-2011-07-17/Baal_v1.4.zip (http://www.whdownload.com/games/Update-2011-07-17/Baal_v1.4.zip)
http://www.whdownload.com/games/Update-2011-07-17/BackToTheFuturePart3_v1.3.zip (http://www.whdownload.com/games/Update-2011-07-17/BackToTheFuturePart3_v1.3.zip)
http://www.whdownload.com/games/Update-2011-07-17/BundesligaManagerHattrick_v0.9_De_AGA_0791.zip (http://www.whdownload.com/games/Update-2011-07-17/BundesligaManagerHattrick_v0.9_De_AGA_0791.zip)
http://www.whdownload.com/games/Update-2011-07-17/CannonFodder2_v1.12_0104.zip (http://www.whdownload.com/games/Update-2011-07-17/CannonFodder2_v1.12_0104.zip)
http://www.whdownload.com/games/Update-2011-07-17/CapNCarnage_v1.0.zip (http://www.whdownload.com/games/Update-2011-07-17/CapNCarnage_v1.0.zip)
http://www.whdownload.com/games/Update-2011-07-17/CarVup_v1.3_1232.zip (http://www.whdownload.com/games/Update-2011-07-17/CarVup_v1.3_1232.zip)
http://www.whdownload.com/games/Update-2011-07-17/Castles_v1.3_2381.zip (http://www.whdownload.com/games/Update-2011-07-17/Castles_v1.3_2381.zip)
http://www.whdownload.com/games/Update-2011-07-17/CelticLegends_v1.3_1281.zip (http://www.whdownload.com/games/Update-2011-07-17/CelticLegends_v1.3_1281.zip)
http://www.whdownload.com/games/Update-2011-07-17/ChaosInAndromeda_v1.0.zip (http://www.whdownload.com/games/Update-2011-07-17/ChaosInAndromeda_v1.0.zip)
http://www.whdownload.com/games/Update-2011-07-17/CharlieJCool_v1.2.zip (http://www.whdownload.com/games/Update-2011-07-17/CharlieJCool_v1.2.zip)
http://www.whdownload.com/games/Update-2011-07-17/KickOff3EuropeanChallenge_v1.0_AGA_1896.zip (http://www.whdownload.com/games/Update-2011-07-17/KickOff3EuropeanChallenge_v1.0_AGA_1896.zip)
http://www.whdownload.com/games/Update-2011-07-17/KnightOrc_v1.0_0215.zip (http://www.whdownload.com/games/Update-2011-07-17/KnightOrc_v1.0_0215.zip)
http://www.whdownload.com/games/Update-2011-07-17/KnightsOfTheCrystallion_v1.51_1160.zip (http://www.whdownload.com/games/Update-2011-07-17/KnightsOfTheCrystallion_v1.51_1160.zip)
http://www.whdownload.com/games/Update-2011-07-17/KnightsOfTheCrystallion_v1.51_De_1426.zip (http://www.whdownload.com/games/Update-2011-07-17/KnightsOfTheCrystallion_v1.51_De_1426.zip)
http://www.whdownload.com/games/Update-2011-07-17/LastDuel_v1.1.zip (http://www.whdownload.com/games/Update-2011-07-17/LastDuel_v1.1.zip)
http://www.whdownload.com/games/Update-2011-07-17/LeaderBoard_v0.1_Arcadia.zip (http://www.whdownload.com/games/Update-2011-07-17/LeaderBoard_v0.1_Arcadia.zip)
http://www.whdownload.com/games/Update-2011-07-17/LeavinTeramis_v1.1_3061.zip (http://www.whdownload.com/games/Update-2011-07-17/LeavinTeramis_v1.1_3061.zip)
http://www.whdownload.com/games/Update-2011-07-17/Legacy_v1.0.zip (http://www.whdownload.com/games/Update-2011-07-17/Legacy_v1.0.zip)




Konu Başlığı: Ynt: Linux Bash Maceralarım
Gönderen: Alpyre üzerinde Nisan 26, 2016, 12:27:29 ÖS
Şimdi sıra geldi bu oyunları oynamaya... :)

Her gün sadece bir tanesini oynasan 10 yıl falan ediyor. :D


Konu Başlığı: Ynt: Linux Bash Maceralarım
Gönderen: Simon (Özay Turay) üzerinde Nisan 26, 2016, 14:52:01 ÖS
Oynayacağımızdan değil, dediğim gibi macera olsun. :)

Zaten bunlar güncel WHDLoad arşivi değil, en son 29.07.2011'de güncellenmiş.

Daha güncelini http://tinyurl.com/m9qjwpy (http://tinyurl.com/m9qjwpy) adresinden (MEGA Sync ile süper iniyor) indirebilirsiniz. ;)


Konu Başlığı: Ynt: Linux Bash Maceralarım
Gönderen: wizofwor üzerinde Nisan 26, 2016, 16:43:41 ÖS
@Alpyre: Arduino ile bazı mobil oyunları çözebilen robot uygulamarı var. Açık kaynak kodlu pratik bir yapay zeka uygulaması çıkarsa böyle bir robotu yapay zekayla birleştirip bu oyunları oynatmak lazım. Başka türlü bitmez. Nihai projem olabilir(!)