Herkese Merhaba ,
Bilge Adam eğitim kurumundan almış olduğum ve devam eden java-android uygulama geliştirme bölümünde bugüne kadar bize destek olan bora hocamızın bize aktardığı bilgilerin aklımda kaldığı kadarıyla burda sizlerle paylaşıyor olacağım aynı zamanda java uygulama dilinde en başından en karmaşık projelerin derinliklerini beraber incelemek için analizler yapacağız.
.
Java Uygulama dilinde - Şuan güncel sürümü olan 8.65 JDK sürümünü PC nize indirdikten sonra herhangi bir arayüz kullanmadan notepad'de uygulama yazarak ekrana yansıtacağımız çıktının nasıl aktarıldığını görelim .
(Write once , run every where ) prensibi ile yola çıkarsak java dilinin her işletim sisteminde çalışıyor olacağını anlayacağız . Açık kaynak kod ile geliştirilen java dilinde özelliklerini bir kenara bırakırsak en basit haliyle şu şekilde göreceğiz ...
public class HelloWorld{
public static void main(String[] args){
system.out.println("HELLO WORLD");
}
}
Bende burdan java ailesine Hello World demek istiyorum...
26 Aralık 2015 Cumartesi
26 Eylül 2015 Cumartesi
CPU Ussage with Powershell ( Graph)
Herkese Merhaba ,
Yaptığım çalışmada Process lerimizde açık uygulamalar listemizde CPU yu en çok kullanan uygulamaların son 5 ini sıralıyıp bunu görselleştireceğiz .
Scriptimize geçmeden önce , açık uygulama listemizi görelim (Resim-1) :
Resim-1
Scriptimiz ve Ekran görüntümüz :
[void][Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms.DataVisualization")
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
$Chart = New-object System.Windows.Forms.DataVisualization.Charting.Chart
$Chart.Width = 500
$Chart.Height = 400
$Chart.Left = 40
$Chart.Top = 30
$ChartArea = New-Object System.Windows.Forms.DataVisualization.Charting.ChartArea
$Chart.ChartAreas.Add($ChartArea)
$CPUPercent = @{
Name = 'CPUPercent'
Expression = {
$TotalSec = (New-TimeSpan -Start $_.StartTime).TotalSeconds
[Math]::Round( ($_.CPU * 100 / $TotalSec), 2)
}
}
$CPU = Get-Process | Select-Object -Property Name, $CPUPercent | Sort-Object -Property CPUPercent -Descending | Select-Object -First 4
$ProcNames = @(foreach($CPUs in $CPU){$CPUs.Name } )
$WS = @(foreach($CPUs in $CPU){ $CPUS.CPUPercent/ 1MB })
[void]$Chart.Series.Add("Data")
$Chart.Series["Data"].Points.DataBindXY($ProcNames, $WS)
$Chart.Anchor = [System.Windows.Forms.AnchorStyles]::Bottom -bor [System.Windows.Forms.AnchorStyles]::Right -bor
[System.Windows.Forms.AnchorStyles]::Top -bor [System.Windows.Forms.AnchorStyles]::Left
$Form = New-Object Windows.Forms.Form
$Form.Text = "CPU Kullanımı"
$Form.Width = 600
$Form.Height = 600
$Form.controls.add($Chart)
$Form.Add_Shown({$Form.Activate()})
$SaveButton = New-Object Windows.Forms.Button
$SaveButton.Text = "Save"
$SaveButton.Top = 500
$SaveButton.Left = 450
$SaveButton.Anchor = [System.Windows.Forms.AnchorStyles]::Bottom -bor [System.Windows.Forms.AnchorStyles]::Right
$SaveButton.add_click({$Chart.SaveImage($Env:USERPROFILE + "\Desktop\Chart.png", "PNG")
[System.Windows.Forms.MessageBox]::Show("Ekran Görüntüsü Masaüstüne Kaydedilmiştir . ")
})
$Form.controls.add($SaveButton)
$Chart.Series["Data"].Sort([System.Windows.Forms.DataVisualization.Charting.PointSortOrder]::Descending, "Y")
$ChartArea.AxisX.Title = "Açık Uygulamalar"
$ChartArea.AxisY.Title = "Çalışan Uygulamalar (MB)"
$maxValuePoint = $Chart.Series["Data"].Points.FindMaxByValue()
$maxValuePoint.Color = [System.Drawing.Color]::Red
$minValuePoint = $Chart.Series["Data"].Points.FindMinByValue()
$minValuePoint.Color = [System.Drawing.Color]::Green
$Chart.Series["Data"]["DrawingStyle"] = "Cylinder"
$Form.ShowDialog()
12 Temmuz 2015 Pazar
Powershell ( CheckBox ) işlemleri
Merhaba , Powershell esnek yapısıyla bize .Net platformundaki system kütüphanesindeki objeleri kullanmaya ve powershell komutları ile çektiğimiz verilere görsellik katmaya yardımcı olur . Powershell 3.0 ile hayata geçen bu dizi serisi ile görsel olarak daha iyi işler çıkartabiliyoruz . Kendi çalıştığım yerde 15 gündür üzerinde kafa yorduğum proje içerisinde kullandığım ve yeni başlayan powershell kullanıcılarının da hoşuna gidebileceğini düşündüğüm bir detay paylaşmak istedim . Oda Check Box kullanımı :
* Forum içerisindeki elemanlarımı System Kütüphanesi ile PowerShell ISE min içerisine yerleştiriyorum .
Burda sadece ben checkbox değil aynı zamanda listbox , button gibi .Net elemanlarını ekledim .
PowerShell Ping Time ( Avarage)
Belirtilen PC ve web adresimine atılacak pinglerin süresini hesaplamak istiyoruz . Bunu commanderden ;
ping \\PCName -t dediğimiz zaman bize müdahale edeceğimiz süreye kadar sinyal cevabı verecektir . Biz ping süremizin ortalama değerini çekmek istiyorsak eğer bunu belirli sayıda pingletip ortalamasını alarak ekrana yazdırmak işlevli olacaktır .
Bunun için kontrol edilmesi kod :
$CompName = "google.com","localhost"
foreach ($comp in $CompName) {
$test = (Test-Connection -ComputerName $comp -Count 4 | measure-Object -Property ResponseTime -Average).average
$response = ($test -as [int] )
write-Host "Ortalama ping süresi " -ForegroundColor Green -NoNewline;write-Host " `"$comp`" is " -ForegroundColor Red -NoNewline;;Write-Host "$response ms" -ForegroundColor Black
}
Olacaktır . Önemli olan nokta ; ( -Count 4 ) kısmıdır . Belirtilen "google.com" ve "LocalHost" için 4 kez sinyal gönderip bize .Avarage ile ortalama değeri döndürecektir .
alabileceğiniz ortalama ekran görüntüsü aşağıdaki gibidir . (Resim-1)
(Resim-1)
21 Nisan 2015 Salı
PowerShell Last Boot
Merhabalar , Şimdi yapacağımız script ile localde bulunan PC son logon zamanını tarih ayarları yapılarak ve daha sonrasında ComputerName zorunlu girmesi gerekecek şekilde değiştirerek adım adım yapıyor olacağız .
Öncelikle bu script için Wmi üzerinde bilgimizin olması gerekir , bunun için
http://www.powertheshell.com/reference/wmireference/root/cimv2/ adresini göz gezdirmeniz faydalı olacaktır .
En taslak hali ile ;
Get-WmiObject -Class Win32_OperatingSystem –ComputerName localhost |
Select-Object -Property CSName,LastBootUpTime
*** Win32_OperatingSystem Classımızından kullanılan PC üzerinde CSName ( PC İsmini ) ve , Son restart tarihini en taslak hali ile ( Resim-1 ) deki gibi verecektir .
Resim-1
*** Şimdi Bu taslağımızı daha da derinleştirelim ;
Select-Object -Property CSName,@{n=”RESTART”;
e={[Management.ManagementDateTimeConverter]::ToDateTime($_.LastBootUpTime)}}
Resim-2
(Resim-2) de belirildiği üzere ; Select-Object -Property CSName,@{n=”RESTART”;
e={[Management.ManagementDateTimeConverter]::ToDateTime($_.LastBootUpTime)}} ile son restart edilen tarihi Gün/Ay/Yıl formatında çevirilmiştir .
*** Script'imizin son hali ise Computer Name giriş zorunlu bırakacak şekilde parametre tanımlamamız olacaktır .
param (
[Parameter(Mandatory=$true)][string]$ComputerName
)
Get-WmiObject -Class Win32_OperatingSystem –ComputerName $ComputerName |
Select-Object -Property CSName,@{n=”Last Booted”;
e={[Management.ManagementDateTimeConverter]::ToDateTime($_.LastBootUpTime)}}
(Resim-3) Çıktısı Alınmıştır .
Resim-3
Teşekkür Ederim .
gorkemkarayel@outlook.com
20 Nisan 2015 Pazartesi
PowerShell ile Dosya Transfer Nasıl Yapılır
Merhabalar , Domain içerisinde bir PC ye dosya transfer yapabilmemiz için kullanılması gereken PowerShell komutumuz ;
Start-BitsTransfer
Konu ile ilgili örnek vermek gerekirse ;
Start-BitsTransfer -Source C:\clientsourcedir\*.txt `
-Destination c:\clientdir\ -TransferType Download
Destination ( Hede ) ile dosyamızı kopyalayacağımız alan belirlenir .
-TransferType ( Upload , UploadReply , Download ) Seçeneği bulunmaktadır .
Start-BitsTransfer http://Server01/serverdir/testfile1.txt C:\clientdir\testfile1.txtÜstte verilen örnekte Http:\\ upload edilmiş ve tipi yükle olarak ayarlanmış olandosyaları belirtilen Path yükleyecektir .Kaynak : https://msdn.microsoft.com/en-us/library/ee663885%28v=vs.85%29.aspx
18 Nisan 2015 Cumartesi
Wmi Object ile Driver Sorgulama
Merhabalar , bu yazımızda bilgisayarımızdaki driverlar hakkında bilgi almak için PowerShell yönetici modülümüze öncelikle manuel olarak kodumuzu yazarak sorgulama yapacağız ve daha sonra WMIExplorer kullanarak aynı sonuca erişmeye çalışacağız ;
Resim-1
ile PC de bulunan driverlar hakkında bilgi alabiliriz . Şimdi aynı sorgu için WMIExplorer tool kullanarak ilerleyelim . Bu tool için ; https://wmie.codeplex.com/ linkini kullanabilirsiniz .
Tool içinde (.) olarak Local PC de Wmi bilgilerim Resim-2 deki gibi sıralanacaktır . Yapmamız gereken NameSpace ve Classes seçimi yaparak sorgumuzu Execute etmektedir .
Resim-2
PowerShell
PowerShell ile ilgili araştırmalarımın ve gerçekleştireceğim ufak Scriptingleri sizinle paylaşmak istiyorum .
Öncelike PowerShell , Windows 7 ile default olarak sistemlerimizde bulunan daha öncesinde Kasım 2006 da ilk olarak Windows Vista işletim sisteminin bir parçası olarak planlanmıştır . Microsoft Exchange Server 2007 ile birlikte ilk olarak piyasaya sürülmüştür . PS1 XP , Server 2012 ve Vistaya free olarak download edilebilmektedir.Betiklerimizi oluşturduğumuz ve kısaca Microsoft tarafından Windows komut satırı ( Cmd.exe) ve Windows Script Host (WSH) alternatif olarak geliştirilen yeni nesil komut satırıdır .
İlk bakışta basit bir komut satırı gibi duran "Powershell", aslında bundan çok daha fazlasıdır, hatta bir programlama dili derleyicisi yapısına sahiptir ve birçok programlama dilinde yapılabilecekleri bünyesinde barındırır. Bu sistem yöneticileri için büyük kolaylıklar sağlamıştır. Arayüzden yapabilecekler ve daha fazlası Powershell kullanılarak çok kısa sürede yapılabilir.
Powershell arayüzüne komutlar metin tabanlı olarak girilse de aslında arka planda nesne tabanlı bir yapıya sahiptir. Yani powershell metinleri işlemez, .NET ortamına dayalı nesnelerle işlem yapar.
Powershell’de komutların çalışma mantığı .Net ile aynıdır. Tüm komutlar fiil-isim şeklinde bir kullanıma sunulur. Örneğin sistemdeki çalışan süreçleri görüntülemek için “Get-Process” komutu kullanılır.(Resim-2)
Powershell’de komutların çalışma mantığı .Net ile aynıdır. Tüm komutlar fiil-isim şeklinde bir kullanıma sunulur. Örneğin sistemdeki çalışan süreçleri görüntülemek için “Get-Process” komutu kullanılır.(Resim-2)
Resim-2
Resim-3
(Resim-3) ' de gösterilen komut ile Get-Host ile PC de bulunan PowerShell versiyonunu tespit edebilirsiniz .
PowerShell , Cmd gibi çok sayıda komut içermektedir . Bunların hepsini akılda tutmak imkansızdır . Bunun için tüm komutlarını sıralayarak en azından anımsatma açısından size Get-Command destek olacaktır . (Resim-4)
Resim-4
(Resim-4) de ekrana getirdiğim komutlar tabiki tümünü göstermemektedir . Daha da fazla olabileceğini tahmin etmişsinizdir . Bu Cmdlet lerin PC de default olarak yüklenenlerini daha kolay olarak ISE uygulamasını açarak uygulamanın sağ tarafında otomatik gelen komut listesinden de ulaşabilirsiniz . Aslında PowerShell'in ilk GUIsi olarak düşündüğüm ISE oldukça verimli çalışma ortamı sunmaktadır . (Resim-5) .PowerShell ISE Erişim için ; C:\Windows\System32\WindowsPowerShell\V1\PowerShellISE.exe den erişebilirsiniz .
Resim-5
NOT: "get" komutları sadece veri çekebilen, "set" komutları veri işleyebilen komutlardır.
| Powershel(Cmdlet) | Powershell(alias) | cmd.exe | Linux | Görevi |
| Set-Location | cd,chdir | cd,chdir | cd | Dizin Değiştirir. |
| Clear-Host | cls, clear | cls | clear | Ekranı Temizler. |
| Copy-Item | cpi, copy, cp | copy, cp | cp | Dosya ve Dizin Kopyalar. |
| Get-Help | help, man | help | man | Yardım Görüntüler. |
| Remove-Item |
ri, del, rmdir,
rd, rm
|
del, rmdir,
rd
| rm, rmdir | Dosya ve Dizin Siler . |
| Rename-Item | rni, ren | ren | mv |
Dosya ve Dizin Taşır,
Adını Değiştirir.
|
| Get-Childitem | gci, dir, ls | dir | ls | Dizin İçeriğini Görüntüler. |
| Write-Output | echo, write | echo | echo |
Bir Yazıyı ya da Değişkenin
Değerini Yazıdırır . |
| Set-Variable | sv, set | set | set | Değişkene Değer Atar. |
| Get-Content | gc, type, cat | type | cat | Dosyaların İçeriğini Görüntüler. |
Alias (Takma Ad)
Powershell’ de kullanılan bazı komutları için farklı aliaslar (takma adlar) tanımlanmıştır. Örneğin silme işlemi için kullanılan "remove-item" komutunu kullanmak yerine "ri" komutunu kullanılabilir. Bunun gibi birçok takma ad tanımlanmıştır, sistemdeki tanımlı takma adların listesini görmek için yine "get-alias" komutu kullanılabilir.(Resim-6)
(Resim-6)
Daha sonraki yazımda Pipeline ve Scripting yapmaya başlıcaz .
http://bidb.itu.edu.tr/seyirdefteri/blog/2013/09/07/powershell-ve-avantajlar%C4%B1
http://tr.wikipedia.org/wiki/Windows_PowerShell
Kaydol:
Yorumlar (Atom)