<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Linux &#8211; CPYNET</title>
	<atom:link href="https://cpynet.com.tr/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>https://cpynet.com.tr</link>
	<description>Yeni Nesil Teknoloji Platformu</description>
	<lastBuildDate>Fri, 22 Nov 2024 07:36:57 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>

<image>
	<url>https://cpynet.com.tr/wp-content/uploads/2024/11/cropped-favicon-32x32.png</url>
	<title>Linux &#8211; CPYNET</title>
	<link>https://cpynet.com.tr</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Linux&#8217;ta Startup Script Çalıştırma</title>
		<link>https://cpynet.com.tr/linuxta-startup-script-calistirma/</link>
		
		<dc:creator><![CDATA[Emin Buyuk]]></dc:creator>
		<pubDate>Tue, 05 Nov 2024 06:03:29 +0000</pubDate>
				<category><![CDATA[Script]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://cpynet-wordpress.wekeea.easypanel.host/linuxta-startup-script-calistirma/</guid>

					<description><![CDATA[Linux işletim sisteminde başlangıçta bir betik çalıştırmak bazen sunucu uygulamalarını otomatik olarak başlatmak gibi birçok senaryoda kullanışlıdır. Bu&#8230;]]></description>
										<content:encoded><![CDATA[
<p>Linux işletim sisteminde başlangıçta bir betik çalıştırmak bazen sunucu uygulamalarını otomatik olarak başlatmak gibi birçok senaryoda kullanışlıdır. Bu makalede, bir betiği başlangıçta çalıştırmak için farklı yöntemleri inceleyeceğiz.</p>



<h3 class="wp-block-heading" id="1-basit-bir-betik-olu%C5%9Fturma">1. Basit Bir Betik Oluşturma</h3>



<p>Öncelikle, başlangıçta çalıştırılacak basit bir betik oluşturalım:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="#!/bin/sh
echo &quot;Son yeniden başlatma zamanı: $(date)&quot; &gt; /etc/motd
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #6272A4">#!/bin/sh</span></span>
<span class="line"><span style="color: #F8F8F2">echo </span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">Son yeniden başlatma zamanı: $(date)</span><span style="color: #E9F284">&quot;</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">&gt;</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">etc</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">motd</span></span>
<span class="line"></span></code></pre></div>



<p>Bu betik, günlük mesajını (Message of the Day) sistemin son yeniden başlatma zamanıyla günceller. Kullanıcılar ilk oturum açtıklarında bu mesajı göreceklerdir.</p>



<p>Betik dosyasını kaydettikten sonra, çalıştırılabilir hale getirelim:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ chmod +x reboot_message.sh
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">$ chmod </span><span style="color: #FF79C6">+</span><span style="color: #F8F8F2">x reboot_message.sh</span></span>
<span class="line"></span></code></pre></div>



<h3 class="wp-block-heading" id="2-beti%C4%9Fin-ba%C5%9Flang%C4%B1%C3%A7ta-%C3%A7al%C4%B1%C5%9Ft%C4%B1r%C4%B1lmas%C4%B1">2. Betiğin Başlangıçta Çalıştırılması</h3>



<h4 class="wp-block-heading" id="21-cron-kullan%C4%B1m%C4%B1">2.1. cron Kullanımı</h4>



<p>En kolay yöntemlerden biri <code>cron</code> kullanmaktır. Bunun için <code>crontab</code> dosyasını düzenlememiz gerekecek:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ crontab -e
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">$ crontab </span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">e</span></span>
<span class="line"></span></code></pre></div>



<p><code>@reboot</code> ifadesi kullanılarak betiği başlangıçta çalıştıracak bir satır ekleyelim:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="@reboot sh /home/ec2-user/reboot_message.sh
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">@</span><span style="color: #50FA7B; font-style: italic">reboot</span><span style="color: #F8F8F2"> sh </span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">home</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">ec2</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">user</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">reboot_message.sh</span></span>
<span class="line"></span></code></pre></div>



<p>Bu yöntem hızlı ve basit olsa da, her cron sürümü <code>@reboot</code> ifadesini desteklemez.</p>



<h4 class="wp-block-heading" id="22-rclocal-kullan%C4%B1m%C4%B1">2.2. rc.local Kullanımı</h4>



<p>Bir diğer yöntem ise <code>/etc/rc.d/rc.local</code> dosyasını kullanmaktır. Bu dosya zaten başlangıçta çalıştığı için, betiğimizi çağıran bir satır ekleyebiliriz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="sh /home/ec2-user/reboot_message.sh
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">sh </span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">home</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">ec2</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">user</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">reboot_message.sh</span></span>
<span class="line"></span></code></pre></div>



<p>Bu yöntemin çalışması için <code>rc.local</code> dosyasının çalıştırılabilir olduğundan emin olmalıyız:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ chmod +x /etc/rc.d/rc.local
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">$ chmod </span><span style="color: #FF79C6">+</span><span style="color: #F8F8F2">x </span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">etc</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">rc.d</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">rc.local</span></span>
<span class="line"></span></code></pre></div>



<h4 class="wp-block-heading" id="23-initd-kullan%C4%B1m%C4%B1">2.3. init.d Kullanımı</h4>



<p><code>/etc/init.d</code> klasöründe, sistemin yönettiği servislerin yaşam döngüsü betikleri bulunur. Burada, betiğimizi başlatacak bir LSB uyumlu betik oluşturabiliriz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="#! /bin/sh
# chkconfig: 345 99 10
case &quot;$1&quot; in
  start)
    # Betiğimizi çalıştırır
    sudo sh /home/ec2-user/reboot_message.sh
    ;;
  *)
    ;;
esac
exit 0
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #6272A4">#! /bin/sh</span></span>
<span class="line"><span style="color: #F8F8F2"># chkconfig: </span><span style="color: #BD93F9">345</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">99</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">10</span></span>
<span class="line"><span style="color: #FF79C6">case</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">$1</span><span style="color: #E9F284">&quot;</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">in</span></span>
<span class="line"><span style="color: #F8F8F2">  start)</span></span>
<span class="line"><span style="color: #F8F8F2">    # Betiğimizi çalıştırır</span></span>
<span class="line"><span style="color: #F8F8F2">    sudo sh </span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">home</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">ec2</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">user</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">reboot_message.sh</span></span>
<span class="line"><span style="color: #F8F8F2">    ;;</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #FF79C6">*</span><span style="color: #F8F8F2">)</span></span>
<span class="line"><span style="color: #F8F8F2">    ;;</span></span>
<span class="line"><span style="color: #F8F8F2">esac</span></span>
<span class="line"><span style="color: #F8F8F2">exit </span><span style="color: #BD93F9">0</span></span>
<span class="line"></span></code></pre></div>



<p>Bu betik <code>start</code> argümanıyla çağrıldığında betiği çalıştıracaktır. <code>chkconfig</code> satırı, betiğin çalıştırılma seviyesini ve önceliğini belirler.</p>



<p>Betiği <code>init.d</code> klasörüne yerleştirdikten sonra başlangıçta çalıştırılması için kaydetmemiz gerekir:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ chkconfig --add service_wrapper.sh
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">$ chkconfig </span><span style="color: #FF79C6">--</span><span style="color: #F8F8F2">add service_wrapper.sh</span></span>
<span class="line"></span></code></pre></div>



<p>Debian tabanlı sistemlerde <code>chkconfig</code> mevcut olmadığından, <code>update-rc.d</code> komutu kullanılabilir:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ update-rc.d service_wrapper.sh defaults
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">$ update</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">rc.d service_wrapper.sh defaults</span></span>
<span class="line"></span></code></pre></div>



<h4 class="wp-block-heading" id="24-systemd-kullan%C4%B1m%C4%B1">2.4. systemd Kullanımı</h4>



<p>Son olarak, systemd ile betik çalıştırma yöntemini inceleyelim. Bunun için <code>/etc/systemd/system</code> altında bir birim dosyası oluşturmalıyız:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="[Unit]
Description=Reboot message systemd servisi.

[Service]
Type=simple
ExecStart=/bin/bash /home/ec2-user/reboot_message.sh

[Install]
WantedBy=multi-user.target
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">[Unit]</span></span>
<span class="line"><span style="color: #F8F8F2">Description</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">Reboot message systemd servisi.</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2">[Service]</span></span>
<span class="line"><span style="color: #F8F8F2">Type</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">simple</span></span>
<span class="line"><span style="color: #F8F8F2">ExecStart</span><span style="color: #FF79C6">=/</span><span style="color: #F8F8F2">bin</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">bash </span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">home</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">ec2</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">user</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">reboot_message.sh</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2">[Install]</span></span>
<span class="line"><span style="color: #F8F8F2">WantedBy</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">multi</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">user.target</span></span>
<span class="line"></span></code></pre></div>



<p>Bu dosya farklı bölümlerden oluşur:</p>



<ul class="wp-block-list">
<li><strong>Unit</strong> – Genel meta verileri içerir.</li>



<li><strong>Service</strong> – Servisin davranışını ve başlatma komutunu açıklar.</li>



<li><strong>Install</strong> – Servisin başlatmada çalışmasını sağlar ve bağımlılıkları yönetir.</li>
</ul>



<p>Dosya izinlerini 644 olarak ayarladıktan sonra servisi etkinleştirelim:<code><br>
</code></p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ chmod 644 /etc/systemd/system/reboot_message.service 
$ systemctl enable reboot_message.service" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F8F8F2">$ chmod </span><span style="color: #BD93F9">644</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">etc</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">systemd</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">system</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">reboot_message.service </span></span>
<span class="line"><span style="color: #F8F8F2">$ systemctl enable reboot_message.service</span></span></code></pre></div>



<p>Birçok dağıtım systemd&#8217;yi desteklese de, her zaman mevcut olmayabilir.</p>



<h3 class="wp-block-heading" id="3-sonu%C3%A7">3. Sonuç</h3>



<p>Bu makalede, Linux&#8217;ta bir betiği başlangıçta çalıştırmak için farklı yöntemleri inceledik. Mevcut olduğunda genellikle <code>systemd</code> ve <code>cron</code> tercih edilirken, <code>rc.local</code> ve <code>init.d</code> yedek seçenekler olarak kullanılabilir.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Linux’ta Arşivleri Diskte Kaydetmeden İndirme ve Çıkarma Yöntemleri</title>
		<link>https://cpynet.com.tr/linuxta-arsivleri-diskte-kaydetmeden-indirme-ve-cikarma-yontemleri/</link>
		
		<dc:creator><![CDATA[Emin Buyuk]]></dc:creator>
		<pubDate>Sat, 02 Nov 2024 14:00:31 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://cpynet-wordpress.wekeea.easypanel.host/linuxta-arsivleri-diskte-kaydetmeden-indirme-ve-cikarma-yontemleri/</guid>

					<description><![CDATA[Bu makalede, arşiv dosyalarını disk alanına kaydetmeden indirme ve çıkarma yöntemlerini inceleyeceğiz. Problemin Tanımı Bir arşiv dosyasının içeriğini&#8230;]]></description>
										<content:encoded><![CDATA[
<p>Bu makalede, arşiv dosyalarını disk alanına kaydetmeden indirme ve çıkarma yöntemlerini inceleyeceğiz.</p>



<h2 class="wp-block-heading" id="problemin-tan%C4%B1m%C4%B1">Problemin Tanımı</h2>



<p>Bir arşiv dosyasının içeriğini internetten almak genellikle iki adım içerir. Öncelikle, arşiv dosyasını indirip diske kaydetmemiz gerekir. Bu işlem, <code>wget</code> veya <code>curl</code> gibi HTTP istemci komut satırı araçları kullanılarak yapılabilir. Ardından, arşivi çıkararak içindeki dosya, dizin ve verileri elde ederiz.</p>



<p>Çoğu durumda, arşiv dosyası içeriğini aldıktan sonra artık gereksiz hale gelir. Bu nedenle, genellikle arşiv dosyasını silerek disk alanı boşaltma işlemi yapılır. Ancak, nihayetinde istediğimiz sadece arşivin içeriğidir ve arşiv dosyasının kendisi değildir. Bu durumda, arşiv dosyasını diske yazmak gereksiz görünüyor. Peki, arşiv dosyasını tamamen kaydetmeden arşiv dosyasının içeriğini nasıl elde edebiliriz?</p>



<p>Bunu Linux pipe yapısı kullanarak nasıl gerçekleştirebileceğimize bakalım.</p>



<h2 class="wp-block-heading" id="pipe-ile-anl%C4%B1k-%C3%A7%C4%B1karma">Pipe ile Anlık Çıkarma</h2>



<p>Fikir, arşiv dosyasını indirirken parça parça çıkarmaktır. Yani, indirdiğimiz arşiv dosyasının baytlarını çıkarma sürecine yönlendirebiliriz. Bu, çıkarma sürecinin indirme işlemiyle aynı anda çalışmasını sağlar, bu da daha verimli hale getirir.</p>



<p>Ayrıca, arşiv dosyasını silme işlemi için ayrı bir komut çalıştırma yükünden de kurtulmuş oluruz. Sonuç olarak, arşiv dosyalarını diske yazmadığımız için disk I/O işlemlerinden tasarruf sağlarız. Bu durum, kullanım bazlı faturalandırma yapılan bulut tabanlı kaynaklarda çalışırken özellikle önemlidir.</p>



<h3 class="wp-block-heading" id="1-targz-dosyas%C4%B1n%C4%B1-%C3%A7%C4%B1karma">1. .tar.gz Dosyasını Çıkarma</h3>



<p>Örneğin, Cpynet web sitesinde barındırılan 1 milyar kelimelik dil modelleme benchmark dosyasını indirelim. Bu dosya 1.7GB boyutundadır ve .tar.gz formatındadır.</p>



<p>Arşiv içeriğini çıkarmak için <code>wget</code> ve <code>tar</code> komutunu bir arada kullanarak tek bir satırda işlem yapabiliriz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="wget -qO- https://cpynet.com.tr/lm-benchmark/1-billion-word-language-modeling-benchmark-r13output.tar.gz | tar xvz
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">wget </span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">qO</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2"> https:</span><span style="color: #6272A4">//cpynet.com.tr/lm-benchmark/1-billion-word-language-modeling-benchmark-r13output.tar.gz | tar xvz</span></span>
<span class="line"></span></code></pre></div>



<p><strong>Çıktı:</strong></p>



<ul class="wp-block-list">
<li>Çıktı, arşiv dosyasının içindeki dosyaların adlarını gösterecektir. Örneğin:</li>
</ul>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="x 1-billion-word-language-modeling-benchmark-r13output/
x 1-billion-word-language-modeling-benchmark-r13output/file1.txt
x 1-billion-word-language-modeling-benchmark-r13output/file2.txt
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">x </span><span style="color: #BD93F9">1</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">billion</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">word</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">language</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">modeling</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">benchmark</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">r13output</span><span style="color: #FF79C6">/</span></span>
<span class="line"><span style="color: #F8F8F2">x </span><span style="color: #BD93F9">1</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">billion</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">word</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">language</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">modeling</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">benchmark</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">r13output</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">file1.txt</span></span>
<span class="line"><span style="color: #F8F8F2">x </span><span style="color: #BD93F9">1</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">billion</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">word</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">language</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">modeling</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">benchmark</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">r13output</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">file2.txt</span></span>
<span class="line"></span></code></pre></div>



<p>Burada, <code>wget</code> komutu arşiv dosyasını indirir ve standart çıkış akışına yönlendirir. <code>-O-</code> seçeneği ile indirdiğimiz baytları standart çıkışa yazıyoruz. Ayrıca, <code>-q</code> seçeneği, <code>wget</code> komutunun standart çıkışta başka mesajlar yazmasını engeller.</p>



<p>Komutun ikinci kısmı, standart girdi akışında bulunan indirilen baytları <code>tar</code> komutuna yönlendirir. <code>tar</code> komutu, arşivi çıkarır ve içeriği mevcut dizine yerleştirir. <code>-xz</code> seçeneği çıkarma ve sıkıştırmayı açma işlemlerini gerçekleştirirken, <code>-v</code> seçeneği ise ayrıntılı modu aktif hale getirir.</p>



<p>Ayrıca, <code>curl</code> komutunu da kullanarak işlemi gerçekleştirebiliriz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="curl -s -L https://cpynet.com.tr/lm-benchmark/1-billion-word-language-modeling-benchmark-r13output.tar.gz | tar xvz
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">curl </span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">s </span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">L https:</span><span style="color: #6272A4">//cpynet.com.tr/lm-benchmark/1-billion-word-language-modeling-benchmark-r13output.tar.gz | tar xvz</span></span>
<span class="line"></span></code></pre></div>



<p><strong>Çıktı:</strong></p>



<ul class="wp-block-list">
<li>Çıktı, yukarıda belirtildiği gibi, çıkarılan dosyaların adlarını gösterecektir.</li>
</ul>



<h3 class="wp-block-heading" id="2-zip-dosyas%C4%B1n%C4%B1-%C3%A7%C4%B1karma">2. .zip Dosyasını Çıkarma</h3>



<p>Cpynet web sitesinde barındırılan bir .zip dosyasını çıkaralım. Zip dosyası, arşiv dosyasının sonunda bir dizin dosyası bulundurur. Bu dizin dosyası, arşivin içeriği hakkında bilgi içerir ve çıkarıcıya nereden bakacağını söyler. Bu yapı, çıkarıcının tam arşiv dosyasına ihtiyaç duyması nedeniyle bir sorun gibi görünmektedir. Ancak, <code>bsdtar</code> gibi araçlar, bu gerçeği kullanarak .zip dosyalarını pipe üzerinden çıkarabilir.</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="wget -qO- https://cpynet.com.tr/dc/enwik9.zip | bsdtar -xvf-
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">wget </span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">qO</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2"> https:</span><span style="color: #6272A4">//cpynet.com.tr/dc/enwik9.zip | bsdtar -xvf-</span></span>
<span class="line"></span></code></pre></div>



<p><strong>Çıktı:</strong></p>



<ul class="wp-block-list">
<li>Çıktı, çıkarılan dosyaların adlarını gösterecektir. Örneğin:</li>
</ul>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="x enwik9
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">x enwik9</span></span>
<span class="line"></span></code></pre></div>



<p><code>bsdtar</code> komutundaki <code>-f-</code> seçeneği, çıkarma işleminin standart girişten geldiğini belirtir. <code>-x</code> seçeneği çıkarma işlemini tanımlarken, <code>-v</code> seçeneği komuttan tanımsal mesajlar almak için ayrıntılı modunu etkinleştirir.</p>



<h2 class="wp-block-heading" id="sonu%C3%A7">Sonuç</h2>



<p>Bu makalede, Linux&#8217;ta arşivleri disk alanına kaydetmeden indirip çıkarma yöntemlerini inceledik. Özellikle, arşiv dosyası baytlarını çıkarıcıya yönlendirerek arşiv dosyasının tamamını beklemeden içerik elde edebiliriz. Bunun sonucunda, disk alanını optimize eder, işleme süresini azaltır ve I/O işlemlerini minimize ederiz.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Linux’ta Inode Sınırlamaları ve Çözümler</title>
		<link>https://cpynet.com.tr/linuxta-inode-sinirlamalari-ve-cozumler/</link>
		
		<dc:creator><![CDATA[Emin Buyuk]]></dc:creator>
		<pubDate>Sat, 02 Nov 2024 11:00:48 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://cpynet-wordpress.wekeea.easypanel.host/linuxta-inode-sinirlamalari-ve-cozumler/</guid>

					<description><![CDATA[Dosyaları genellikle içerik barındıran nesneler olarak düşünürüz. Ancak, günlük hayatta daha çok bağlantılarla ilgileniriz. Aslında, dosyaların altında yatan&#8230;]]></description>
										<content:encoded><![CDATA[
<p>Dosyaları genellikle içerik barındıran nesneler olarak düşünürüz. Ancak, günlük hayatta daha çok bağlantılarla ilgileniriz. Aslında, dosyaların altında yatan nesneler <code>inode</code> adı verilen yapılardır.</p>



<p>Bu makalede, Linux inode’ları üzerine yoğunlaşıyoruz: ne olduklarını, neden ve ne zaman kullandığımızı ele alacağız. Önce depolama konseptiyle başlıyoruz. Ardından, dosya sistemlerinin depolama aygıtlarına nasıl uygulandığını ve temel işleyişlerini tartışıyoruz. Son olarak, inode&#8217;lar üzerinden dosya sistemi nesnelerini inceliyoruz ve bazı özel durumları ele alıyoruz.</p>



<p>Bu makaledeki kodları Debian 11 (Bullseye) üzerinde GNU Bash 5.1.4 ile test ettik. Kod POSIX uyumlu olup, bu tür herhangi bir ortamda çalışmalıdır.</p>



<h3 class="wp-block-heading" id="2-depolama">2. Depolama</h3>



<p>Çoğu cihazda en az bir ana bellek ve bir de ikincil bellek bulunur. Ana belleği genellikle RAM (Rastgele Erişimli Bellek) olarak adlandırırken, ikincil bellek ya da depolama, sabit diskler, SSD’ler gibi aygıtlardan oluşur.</p>



<p>Depolama aygıtlarının türü ne olursa olsun, genellikle bir kontrolcüye sahiptirler. Bu kontrolcü, ilgili belleği cihaza sunan bir arayüz sağlar. Kontrolcüler cihazı aynı boyutta bloklar olarak sunar.</p>



<p>İkincil belleğin en küçük blok boyutu genellikle 512 baytlık sektörlerdir. Bu bilgi ilerleyen kısımlarda önemli olacaktır.</p>



<p>Depolama aygıtlarını daha verimli kullanmak için işletim sistemi (OS), kontrolcü ile iletişim kurabilen sürücülere sahiptir. Ancak, bu sürücüler belleğin oldukça ham bir yapısını sunar ve bu yapı başka bir soyutlama ile daha kullanıcı dostu hale getirilir.</p>



<h3 class="wp-block-heading" id="3-dosya-sistemi">3. Dosya Sistemi</h3>



<p>Sürücüler, işletim sistemlerinin depolamayı görme ve kontrol etme yoludur; dosya sistemleri ise onları düzenleme biçimidir. Bunu yapmak için, dosya sistemi genellikle bir indeks mekanizması kullanır.</p>



<h4 class="wp-block-heading" id="31-meta-veri-d%C3%BCzenlemesi">3.1. Meta Veri Düzenlemesi</h4>



<p>Bir kitabın bölümlerinin, sayfa numaraları ve başlıklar gibi önemli özelliklerle listelendiğini düşünün. Bu bilgilerin tümü kitabın dizininde yer alır. Kitabın tüm sayfalarına sahip olmadan, dizin üzerinden kitabın ne kadar uzun olduğunu, bölümlerin sıralamasını ve özelliklerini görebiliriz. Bu yapı, bir dosya sisteminin temel fikrine benzer.</p>



<p>Dosya sistemleri için indeks, meta verileri temsil eder. Dosya sisteminin dizini, kitap sayfalarını nasıl düzenliyorsa, dosya sistemi de depolama alanındaki blokları düzenler.</p>



<h4 class="wp-block-heading" id="32-%C3%B6rnekler">3.2. Örnekler</h4>



<p>Çoğu dosya sistemi, bloklara işaret eden bir tür destekleyici organizasyona sahiptir:</p>



<ul class="wp-block-list">
<li>FAT (File Allocation Table) kendi adıyla aynı olan bir Dosya Ayırma Tablosuna sahiptir.</li>



<li>NTFS (New Technology File System) daha gelişmiş bir Ana Dosya Tablosu (MFT) kullanır.</li>



<li>Linux’te ise ext ailesi dosya sistemleri (ext2, ext3 ve ext4) gibi bazı yerel dosya sistemleri yaygın olarak kullanılır. Bu tür sistemler, meta verilerinin anahtarı olan bir konsepti paylaşır: <code>inode</code>.</li>
</ul>



<h3 class="wp-block-heading" id="4-inode">4. Inode</h3>



<p><code>Inode</code> terimi “index node” (indeks düğümü) kelimelerinden türemiştir. Dosya sistem organizasyonlarının kitap dizinlerine benzetildiğini düşünürsek, inode’ların bu fikre nasıl uyduğunu görebiliriz.</p>



<p>Her inode, işletim sistemi tarafından atanmış benzersiz bir tam sayıya sahiptir ve bu sayede dosya sistemindeki nesneler anahtarlanır. Bir dosyanın inode bilgilerini görüntülemek için <code>stat</code> komutunu kullanabiliriz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ stat file.ext
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">stat</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">file.ext</span></span>
<span class="line"></span></code></pre></div>



<p>Bu çıktıda dosya adı, boyutu, inode numarası ve erişim hakları gibi bilgiler yer alır. Bu sayede, dosyanın inode&#8217;unda depolanan meta verilere hızlı bir erişim sağlanır.</p>



<h3 class="wp-block-heading" id="5-dosya-sistemi-nesneleri">5. Dosya Sistemi Nesneleri</h3>



<p>Şimdiye kadar dosya sisteminin meta verilerinden bahsettik. Ancak dosya sistemlerinin var olma amacı, asıl verileri düzenlemektir. Kullanıcı olarak bizim görebildiğimiz şeyler, dosya sistemi nesneleridir.</p>



<p>Linux dosya sistemlerinde “dosya” terimi, inode ile ilişkilendirilmiş herhangi bir nesneyi ifade eder. Farklı türlerde olabilirler:</p>



<ul class="wp-block-list">
<li><strong>Normal Dosya</strong>: Veri içeren dosyalardır.</li>



<li><strong>Dizin</strong>: Diğer nesneleri, hatta başka dizinleri de saklayabilir.</li>



<li><strong>Özel Blok</strong>: Cihazlara özel veri saklama yapısı.</li>



<li><strong>Özel Karakter</strong>: Tek tek karakterlerle iletişim kurar.</li>



<li><strong>Bağlantılar</strong>: Başka bir dosyaya kısayol sağlar.</li>
</ul>



<h4 class="wp-block-heading" id="51-normal-dosya">5.1. Normal Dosya</h4>



<p>Normal dosyalar, genellikle “dosya” dediğimiz veri koleksiyonlarıdır. <code>debugfs</code> ile bir dosyanın içeriğinin nasıl dağıldığını görebiliriz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ debugfs /dev/sda
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">debugfs</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/dev/sda</span></span>
<span class="line"></span></code></pre></div>



<h4 class="wp-block-heading" id="52-dizin">5.2. Dizin</h4>



<p>Dizinler, dosya sistemlerinde nesneleri barındıran yapılardır. Kullanıcılar bu yapıyı bir ağaç yapısı gibi görürler.</p>



<h3 class="wp-block-heading" id="6-inode-dosya-sistemi-%C3%B6zel-durumlar%C4%B1">6. Inode Dosya Sistemi Özel Durumları</h3>



<p>Inode tabanlı bir dosya sistemi kullanırken, bazen bazı özel durumları göz önünde bulundurmak gerekebilir:</p>



<h4 class="wp-block-heading" id="61-maksimum-inode-say%C4%B1s%C4%B1">6.1. Maksimum Inode Sayısı</h4>



<p>Bir dosya sistemi, depolama alanı olmasına rağmen inode’ları tükenebilir. Küçük dosyalar fazla yer kaplamasa bile toplam inode sayısını azaltabilir.</p>



<h4 class="wp-block-heading" id="62-yeniden-atama">6.2. Yeniden Atama</h4>



<p>Bir inode&#8217;u sildiğimizde, dosya sistemi onu başka bir dosya için yeniden tahsis edebilir. Bir dosyanın adını silmek, inode&#8217;u silmekle aynı şey değildir.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Dosya ve dizinleri tanımlayan veri yapıları olan inodelar, belirli bir sınıra sahip olup, dosya sistemi oluşturulurken ayarlanır. Bu limitler, disk alanı boş olsa bile yeni dosyalar oluşturamamamıza yol açabilir. Bu yazıda, inodeların ne olduğunu, neden sınırlı olduklarını ve inode sorunlarıyla nasıl başa çıkabileceğimizi inceleyeceğiz.</p>



<h4 class="wp-block-heading" id="inodelar%C4%B1n-s%C4%B1n%C4%B1rl%C4%B1-olmas%C4%B1n%C4%B1n-sebebi">Inodeların Sınırlı Olmasının Sebebi</h4>



<p>Bir inode, dosyanın sistem tarafından kullanılabilmesi için gerekli olan öznitelikler ve disk blok konumları gibi kritik bilgileri içerir. Linux tabanlı sistemlerde varsayılan olan <em>ext</em> dosya sistemleri gibi bazı dosya sistemlerinde inodelar sabit boyutlu bir tabloda saklanır. Bu tablonun boyutu, disk bölümü (partition) oluşturulurken belirlenir ve daha sonra değiştirilemez.</p>



<p>macOS gibi bazı sistemlerde kullanılan APFS gibi diğer dosya sistemleri ise sabit boyutlu tablolar yerine daha esnek veri yapıları (örneğin B-ağaçları) kullanır. Bu sayede inode sayısı daha esnek hale gelir. Yine de inode sayısı belirli bir sınırla sınırlıdır, ancak bu sınıra ulaşmak oldukça zordur.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading" id="inode-limitini-belirlemek">Inode Limitini Belirlemek</h4>



<p>Inode limiti, disk bölümü oluşturulurken belirlenir. Çoğu durumda varsayılan ayarlar yeterli olsa da, çok sayıda küçük dosya saklayacaksak inode ayarlarını manuel olarak yapabiliriz. Örneğin, sistemimizdeki ortalama dosya boyutunun yalnızca 1 kB olacağını düşünüyorsak, her bin bayt için bir inode oluşturmak üzere şu komutu kullanabiliriz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ sudo mkfs.ext4 -i 1000 /dev/sdev
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">mkfs.ext4</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-i</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">1000</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/dev/sdev</span></span>
<span class="line"></span></code></pre></div>



<p>Alternatif olarak, inodelar için aynı sınırlamaları olmayan Btrfs gibi başka bir dosya sistemi de tercih edebiliriz.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading" id="inodelar%C4%B1-kontrol-etme-ve-bo%C5%9Faltma">Inodeları Kontrol Etme ve Boşaltma</h4>



<p>Kullanılabilir inodeları görmek için <code>df</code> komutunu kullanabiliriz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ df -i
Filesystem     512-blocks      Used  Available Capacity iused      ifree %iused  Mounted on
/dev/disk1s5s1  489620264  46865488   34089872    58%  568975 2447532345    0%   /
/dev/disk2s1   1953456384 727555584 1225900800    38% 2842014    4788675   37%   /Volumes/T7
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">df</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-i</span></span>
<span class="line"><span style="color: #50FA7B">Filesystem</span><span style="color: #F8F8F2">     </span><span style="color: #BD93F9">512</span><span style="color: #F1FA8C">-blocks</span><span style="color: #F8F8F2">      </span><span style="color: #F1FA8C">Used</span><span style="color: #F8F8F2">  </span><span style="color: #F1FA8C">Available</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">Capacity</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">iused</span><span style="color: #F8F8F2">      </span><span style="color: #F1FA8C">ifree</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">%iused</span><span style="color: #F8F8F2">  </span><span style="color: #F1FA8C">Mounted</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">on</span></span>
<span class="line"><span style="color: #50FA7B">/dev/disk1s5s1</span><span style="color: #F8F8F2">  </span><span style="color: #BD93F9">489620264</span><span style="color: #F8F8F2">  </span><span style="color: #BD93F9">46865488</span><span style="color: #F8F8F2">   </span><span style="color: #BD93F9">34089872</span><span style="color: #F8F8F2">    </span><span style="color: #BD93F9">58</span><span style="color: #F1FA8C">%</span><span style="color: #F8F8F2">  </span><span style="color: #BD93F9">568975</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">2447532345</span><span style="color: #F8F8F2">    </span><span style="color: #BD93F9">0</span><span style="color: #F1FA8C">%</span><span style="color: #F8F8F2">   </span><span style="color: #F1FA8C">/</span></span>
<span class="line"><span style="color: #50FA7B">/dev/disk2s1</span><span style="color: #F8F8F2">   </span><span style="color: #BD93F9">1953456384</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">727555584</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">1225900800</span><span style="color: #F8F8F2">    </span><span style="color: #BD93F9">38</span><span style="color: #F1FA8C">%</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">2842014</span><span style="color: #F8F8F2">    </span><span style="color: #BD93F9">4788675</span><span style="color: #F8F8F2">   </span><span style="color: #BD93F9">37</span><span style="color: #F1FA8C">%</span><span style="color: #F8F8F2">   </span><span style="color: #F1FA8C">/Volumes/T7</span></span>
<span class="line"></span></code></pre></div>



<p>Buradaki “iused” sütunu kullanılan inodeların sayısını, “ifree” sütunu boşta olan inodeların sayısını ve “%iused” sütunu ise kullanılan inodeların yüzdesini gösterir.</p>



<p>Ne yazık ki inodeları boşaltmanın tek yolu gereksiz dosyaları silmektir. Ancak hangi dosyaların inodeları tükettiğini bulmak bazen zor olabilir. Bunu çözmenin bir yolu, dizinleri içerdikleri dosya sayısına göre sıralamaktır. Bu sayede sorunlu dizinleri kolayca bulabiliriz.</p>



<p>Aşağıdaki komut, belirli bir dizindeki dosyaları sayarak, hangi dizinlerin daha fazla inode kullandığını tespit etmemize yardımcı olur:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ sudo find . -xdev -type f | cut -d &quot;/&quot; -f 2 | sort | uniq -c | sort -n
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">find</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">.</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-xdev</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-type</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">f</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">|</span><span style="color: #F8F8F2"> </span><span style="color: #50FA7B">cut</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-d</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">/</span><span style="color: #E9F284">&quot;</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-f</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">2</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">|</span><span style="color: #F8F8F2"> </span><span style="color: #50FA7B">sort</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">|</span><span style="color: #F8F8F2"> </span><span style="color: #50FA7B">uniq</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-c</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">|</span><span style="color: #F8F8F2"> </span><span style="color: #50FA7B">sort</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-n</span></span>
<span class="line"></span></code></pre></div>



<p>Çıktıda “Projects” gibi bazı dizinlerin çok sayıda dosya içerdiğini görebiliriz. Bu durumda daha fazla inceleme yapabilir veya bu dizini başka bir sürücüye taşımak gibi önlemler alabiliriz.</p>



<p>Sonuç olarak, inode&#8217;lar dosya sistemlerinin yapı taşlarıdır ve veri yönetiminde kritik bir rol oynamaktadır. Linux sistemlerinde, inode sınırlarının anlaşılması ve yönetilmesi, sistem performansını ve dosya organizasyonunu iyileştirmek için oldukça önemlidir. Depolama aygıtları ve dosya sistemleri arasındaki etkileşimi anlamak, daha verimli bir depolama çözümü sağlamaya yardımcı olur. İnode kullanımını izlemek ve düzenli olarak gereksiz dosyaları temizlemek, sistemin sağlıklı çalışmasını sağlarken, veri erişimini hızlandırır. Unutmayın ki, inode&#8217;ları etkili bir şekilde yönetmek, sistem kaynaklarınızı en iyi şekilde kullanmanın anahtarıdır.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Linux Mount Komutu ile USB ve Disk Bağlama</title>
		<link>https://cpynet.com.tr/linux-mount-komutu-ile-usb-ve-disk-baglama/</link>
		
		<dc:creator><![CDATA[Emin Buyuk]]></dc:creator>
		<pubDate>Sat, 02 Nov 2024 09:30:02 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://cpynet-wordpress.wekeea.easypanel.host/linux-mount-komutu-ile-usb-ve-disk-baglama/</guid>

					<description><![CDATA[Linux sistemlerinde, dosya sistemleri veya depolama cihazları belirli dizinlere bağlanarak (mount) sistemde kullanılabilir hale getirilir. Bağlama işlemi, Linux&#8217;un&#8230;]]></description>
										<content:encoded><![CDATA[
<p>Linux sistemlerinde, dosya sistemleri veya depolama cihazları belirli dizinlere bağlanarak (mount) sistemde kullanılabilir hale getirilir. Bağlama işlemi, Linux&#8217;un temel işleyişini sağlamak için oldukça önemlidir, çünkü cihazlar, sabit disk bölümleri, USB sürücüler, ağ paylaşımları ve ISO dosyaları gibi kaynaklara erişim sağlamak bu işlemle mümkün olur. Bu rehberde, Linux sisteminde dosya sistemlerini bağlamayı, detaylı komutları ve çeşitli kullanım örneklerini adım adım inceleyeceğiz.</p>



<h3 class="wp-block-heading" id="1-dosya-sistemleri-ve-ba%C4%9Flama-mount-nedir">1. Dosya Sistemleri ve Bağlama (Mount) Nedir?</h3>



<p>Linux işletim sisteminde, her şey bir dosya olarak kabul edilir; bu sadece belgeleri veya dizinleri değil, aynı zamanda cihazları ve hatta işlemleri de içerir. Dolayısıyla, sabit diskler, USB sürücüler veya ağdaki uzak paylaşımlar, öncelikle bağlama işlemiyle bir dizine erişim sağlanarak kullanılabilir hale getirilir. Bağlama işlemi yapılmadan, bu cihazlara doğrudan erişim sağlanamaz.</p>



<p>Bir dosya sistemini bağlamak, genellikle iki temel adımı içerir:</p>



<ol class="wp-block-list">
<li>Bağlama noktasının belirlenmesi veya oluşturulması.</li>



<li><code>mount</code> komutu ile dosya sisteminin belirli bir dizine bağlanması.</li>
</ol>



<p>Bağlama işlemi, genellikle sistem açılışında otomatik olarak gerçekleştirilir, ancak kullanıcı gerektiğinde belirli cihazları manuel olarak bağlayabilir.</p>



<h3 class="wp-block-heading" id="2-mevcut-ba%C4%9Flanm%C4%B1%C5%9F-dosya-sistemlerini-g%C3%B6r%C3%BCnt%C3%BCleme">2. Mevcut Bağlanmış Dosya Sistemlerini Görüntüleme</h3>



<p>Linux sisteminde, mevcut olarak bağlanmış tüm dosya sistemlerini görüntülemek için <code>mount</code> komutunu tek başına kullanabilirsiniz. Bu komut, hangi cihazların hangi noktalara bağlı olduğunu ve bu bağlantıların nasıl yapılandırıldığını gösterir:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ mount
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">mount</span></span>
<span class="line"></span></code></pre></div>



<p>Bu komutun çıktısı genellikle şu şekildedir:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="/dev/sda1 on / type ext4 (rw,noatime,errors=remount-ro)
/dev/sdb1 on /data type ext4 (rw,noatime)
/dev/sdc1 on /backup type ext4 (ro,relatime)
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">/dev/sda1</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">on</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">type</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">ext4</span><span style="color: #F8F8F2"> (rw,noatime,errors=remount-ro)</span></span>
<span class="line"><span style="color: #50FA7B">/dev/sdb1</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">on</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/data</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">type</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">ext4</span><span style="color: #F8F8F2"> (rw,noatime)</span></span>
<span class="line"><span style="color: #50FA7B">/dev/sdc1</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">on</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/backup</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">type</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">ext4</span><span style="color: #F8F8F2"> (ro,relatime)</span></span>
<span class="line"></span></code></pre></div>



<p>Her satırdaki bilgiler şu şekildedir:</p>



<ul class="wp-block-list">
<li><strong>(1)</strong> Bağlanan cihaz veya dosya sisteminin adı (örneğin <code>/dev/sda1</code>).</li>



<li><strong>(2)</strong> Bağlantı noktası, yani cihazın bağlandığı dizin (örneğin <code>/</code> veya <code>/data</code>).</li>



<li><strong>(3)</strong> Dosya sistemi türü (örneğin <code>ext4</code>).</li>



<li><strong>(4)</strong> Bağlama seçenekleri; burada <code>rw</code>, <code>ro</code>, <code>noatime</code> gibi seçenekler dosya sisteminin okuma-yazma veya salt okunur olup olmadığını belirtir.</li>
</ul>



<p>Alternatif olarak, <code>df -h</code> komutunu kullanarak da bağlanmış dosya sistemlerinin bir listesini daha okunabilir bir formatta görebilirsiniz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ df -h
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">df</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-h</span></span>
<span class="line"></span></code></pre></div>



<p>Bu komut, kullanılan alan, boş alan ve bağlanma noktalarını gösterir.</p>



<h3 class="wp-block-heading" id="3-dosya-sistemi-ba%C4%9Flama">3. Dosya Sistemi Bağlama</h3>



<p>Bir dosya sistemini bağlama işleminde dikkat edilmesi gereken adımlar ve seçenekler vardır. Örneğin, bir USB sürücüsü veya ağ paylaşımı bağlamak için farklı yöntemler gerekebilir.</p>



<h4 class="wp-block-heading" id="31-basit-bir-cihaz-ba%C4%9Flama">3.1. Basit Bir Cihaz Bağlama</h4>



<p>Bir cihazı bağlamak için şu adımları izleyin:</p>



<ol class="wp-block-list">
<li><strong>Bağlama Noktası Oluşturma:</strong> Öncelikle cihazın bağlanacağı bir dizin oluşturmalısınız. Örneğin:</li>
</ol>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="sudo mkdir /mnt/mydisk
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">mkdir</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/mnt/mydisk</span></span>
<span class="line"></span></code></pre></div>



<ol class="wp-block-list">
<li><strong>Bağlama İşlemi:</strong> Şimdi cihazı <code>mount</code> komutu ile oluşturduğunuz dizine bağlayabilirsiniz. Örneğin:</li>
</ol>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="sudo mount /dev/sdb1 /mnt/mydisk
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">mount</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/dev/sdb1</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/mnt/mydisk</span></span>
<span class="line"></span></code></pre></div>



<ol class="wp-block-list">
<li><strong>Bağlantıyı Kontrol Etme:</strong> Bağlantının başarılı olup olmadığını kontrol etmek için:</li>
</ol>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="mount | grep mydisk
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">mount</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">|</span><span style="color: #F8F8F2"> </span><span style="color: #50FA7B">grep</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">mydisk</span></span>
<span class="line"></span></code></pre></div>



<h4 class="wp-block-heading" id="32-iso-dosyalar%C4%B1n%C4%B1-ba%C4%9Flama">3.2. ISO Dosyalarını Bağlama</h4>



<p>ISO dosyaları, optik disklerin (CD/DVD) dijital bir kopyası olarak saklanır ve sistemde &#8220;loop&#8221; cihazı kullanılarak bağlanabilir. Bu dosyalar çoğunlukla salt okunur (read-only) olarak bağlanır.</p>



<p>ISO dosyasını bağlamak için:</p>



<ol class="wp-block-list">
<li><strong>Bağlama Noktası Oluşturma:</strong> Öncelikle bir dizin oluşturun:</li>
</ol>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="sudo mkdir /mnt/iso
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">mkdir</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/mnt/iso</span></span>
<span class="line"></span></code></pre></div>



<ol class="wp-block-list">
<li><strong>ISO Dosyasını Bağlama:</strong> ISO dosyasını bu dizine bağlayın:</li>
</ol>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="sudo mount -o loop /path/to/your.iso /mnt/iso
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">mount</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-o</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">loop</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/path/to/your.iso</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/mnt/iso</span></span>
<span class="line"></span></code></pre></div>



<ol class="wp-block-list">
<li><strong>Bağlantıyı Kontrol Etme:</strong> Bağlanmış ISO dosyasını görmek için:</li>
</ol>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="mount | grep /mnt/iso
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">mount</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">|</span><span style="color: #F8F8F2"> </span><span style="color: #50FA7B">grep</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/mnt/iso</span></span>
<span class="line"></span></code></pre></div>



<h4 class="wp-block-heading" id="33-usb-s%C3%BCr%C3%BCc%C3%BCleri-ba%C4%9Flama">3.3. USB Sürücüleri Bağlama</h4>



<p>USB cihazları, çıkarılabilir olması nedeniyle özellikle sık kullanılan depolama cihazlarıdır. Sisteme bir USB takıldığında, genellikle <code>/dev/sdX</code> biçiminde bir cihaz adı atanır. Cihazın bağlanması için öncelikle <code>lsblk</code> komutu ile cihaz adını öğrenebilirsiniz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="lsblk
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">lsblk</span></span>
<span class="line"></span></code></pre></div>



<p>Cihaz adını öğrendikten sonra:</p>



<ol class="wp-block-list">
<li><strong>Bağlama Noktası Oluşturma:</strong> Örneğin:</li>
</ol>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="sudo mkdir /mnt/usbdrive
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">mkdir</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/mnt/usbdrive</span></span>
<span class="line"></span></code></pre></div>



<ol class="wp-block-list">
<li><strong>USB’yi Bağlama:</strong> USB cihazını bağlayın:</li>
</ol>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="sudo mount /dev/sdb1 /mnt/usbdrive
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">mount</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/dev/sdb1</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/mnt/usbdrive</span></span>
<span class="line"></span></code></pre></div>



<ol class="wp-block-list">
<li><strong>Kullanım:</strong> Artık <code>/mnt/usbdrive</code> dizini üzerinden USB içeriğine erişebilirsiniz.</li>
</ol>



<h4 class="wp-block-heading" id="34-a%C4%9F-payla%C5%9F%C4%B1mlar%C4%B1n%C4%B1-ba%C4%9Flama">3.4. Ağ Paylaşımlarını Bağlama</h4>



<p>Ağ üzerindeki dosya paylaşımlarına erişmek için <code>NFS</code> veya <code>CIFS</code> gibi protokoller kullanılır. Aşağıda bu protokolleri kullanarak bağlantı kurma işlemlerini inceleyeceğiz.</p>



<h5 class="wp-block-heading" id="341-nfs-payla%C5%9F%C4%B1m%C4%B1n%C4%B1-ba%C4%9Flama">3.4.1. NFS Paylaşımını Bağlama</h5>



<p>NFS (Network File System), ağdaki paylaşımlara erişmek için kullanılan bir dosya sistemi protokolüdür. NFS kullanarak bir dizini bağlamak için:</p>



<ol class="wp-block-list">
<li><strong>Bağlama Noktası Oluşturma:</strong> Örneğin:</li>
</ol>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="sudo mkdir /mnt/nfsshare
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">mkdir</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/mnt/nfsshare</span></span>
<span class="line"></span></code></pre></div>



<ol class="wp-block-list">
<li><strong>NFS Paylaşımını Bağlama:</strong> NFS sunucusundaki bir dizini bağlamak için:</li>
</ol>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="sudo mount -t nfs 192.168.1.100:/shared/folder /mnt/nfsshare
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">mount</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-t</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">nfs</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">192.168</span><span style="color: #F1FA8C">.1.100:/shared/folder</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/mnt/nfsshare</span></span>
<span class="line"></span></code></pre></div>



<h5 class="wp-block-heading" id="342-samba-payla%C5%9F%C4%B1m%C4%B1n%C4%B1-ba%C4%9Flama-cifs">3.4.2. Samba Paylaşımını Bağlama (CIFS)</h5>



<p>Samba, Linux ve Windows sistemleri arasında dosya paylaşımını sağlar. CIFS (Common Internet File System) protokolü kullanarak Samba paylaşımlarına bağlanabiliriz.</p>



<ol class="wp-block-list">
<li><strong>Bağlama Noktası Oluşturma:</strong> Örneğin:</li>
</ol>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="sudo mkdir /mnt/sambashare
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">mkdir</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/mnt/sambashare</span></span>
<span class="line"></span></code></pre></div>



<ol class="wp-block-list">
<li><strong>Samba Paylaşımını Bağlama:</strong> CIFS protokolü ile bir Windows paylaşımını bağlamak için:</li>
</ol>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="sudo mount -t cifs //192.168.1.10/shared /mnt/sambashare -o username=yourusername,password=yourpassword
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">mount</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-t</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">cifs</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">//192.168.1.10/shared</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/mnt/sambashare</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-o</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">username=yourusername,password=yourpassword</span></span>
<span class="line"></span></code></pre></div>



<h3 class="wp-block-heading" id="4-ba%C4%9Flama-se%C3%A7enekleri">4. Bağlama Seçenekleri</h3>



<p><code>mount</code> komutu birçok ek seçeneğe sahiptir. Bunlardan bazıları şunlardır:</p>



<ul class="wp-block-list">
<li><code>-o rw</code>: Dosya sistemini okuma-yazma olarak bağlar.</li>



<li><code>-o ro</code>: Dosya sistemini salt okunur olarak bağlar.</li>



<li><code>-o loop</code>: Bir dosya imajını, örneğin bir ISO dosyasını bağlamak için kullanılır.</li>



<li><code>-o noatime</code>: Dosya sisteminde dosyaların son erişim zamanlarını kaydetmeyi devre dışı bırakır ve disk erişim performansını artırabilir.</li>
</ul>



<h3 class="wp-block-heading" id="5-etcfstab-dosyas%C4%B1n%C4%B1-kullanarak-otomatik-ba%C4%9Flama">5. /etc/fstab Dosyasını Kullanarak Otomatik Bağlama</h3>



<p>Sistem açıldığında bazı dosya sistemlerinin otomatik olarak bağlanmasını sağlamak için <code>/etc/fstab</code> dosyası kullanılır. Bu dosyada her satır, bir dosya sisteminin hangi dizine nasıl bağlanacağını tanımlar. Örneğin, <code>/dev/sdb1</code> cihazını <code>/data</code> dizinine otomatik bağlamak için <code>/etc/fstab</code> dosyasına şu satırı ekleyebilirsiniz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="/dev/sdb1   /data   ext4    defaults    0  0
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">/dev/sdb1</span><span style="color: #F8F8F2">   </span><span style="color: #F1FA8C">/data</span><span style="color: #F8F8F2">   </span><span style="color: #F1FA8C">ext4</span><span style="color: #F8F8F2">    </span><span style="color: #F1FA8C">defaults</span><span style="color: #F8F8F2">    </span><span style="color: #BD93F9">0</span><span style="color: #F8F8F2">  </span><span style="color: #BD93F9">0</span></span>
<span class="line"></span></code></pre></div>



<p>Bu yapılandırma dosyasını düzenledikten sonra <code>mount -a</code> komutunu kullanarak tüm dosya sistemlerini tekrar bağlayabilirsiniz.</p>



<h3 class="wp-block-heading" id="6-dosya-sistemini-ba%C4%9Flant%C4%B1dan-%C3%A7%C4%B1karma">6. Dosya Sistemini Bağlantıdan Çıkarma</h3>



<p>Bağlanmış bir dosya sistemini bağlantıdan çıkarmak için <code>umount</code> komutu kullanılır. Bu işlem, dosya sistemini güvenli bir şekilde bağlantıdan çıkarır.</p>



<p>Örneğin, <code>/mnt/mydisk</code> bağlama noktasını çıkarmak için:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="sudo umount /mnt/mydisk
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">umount</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/mnt/mydisk</span></span>
<span class="line"></span></code></pre></div>



<p>Alternatif olarak, cihaz adı ile de bağlantıyı kaldırabilirsiniz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="sudo umount /dev/sdb1
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">umount</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/dev/sdb1</span></span>
<span class="line"></span></code></pre></div>



<h3 class="wp-block-heading" id="sonu%C3%A7">Sonuç</h3>



<p>Linux sistemlerinde dosya sistemlerini bağlama işlemi, sistemin günlük kullanımında önemli bir yer tutar. USB sürücülerden ağ paylaşımlarına, ISO dosyalarından sabit disk bölümlerine kadar birçok kaynağı sisteme erişilebilir hale getiren bu süreç, özellikle sistem yöneticileri ve ileri seviye kullanıcılar için bilinmesi gereken temel bir konudur.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading" id="linux%E2%80%99ta-ba%C4%9Flant%C4%B1-noktas%C4%B1-kontrol%C3%BC-mount-edilmi%C5%9F-dizini-tespit-etme-ve-otomatik-ba%C4%9Flama">Linux’ta Bağlantı Noktası Kontrolü: Mount Edilmiş Dizini Tespit Etme ve Otomatik Bağlama</h3>



<p>Linux sistemlerde, bir dizinin &#8220;mount&#8221; edilip edilmediğini belirlemek birçok durumda oldukça önemlidir. Bu rehberde, <code>mount</code>, <code>mountpoint</code>, <code>findmnt</code> komutlarını ve <code>/proc/mounts</code> dosyasını kullanarak bir dizinin mount durumunu nasıl kontrol edebileceğimizi ele alacağız. Örnek olarak <code>/mnt/backup</code> dizininin mount durumunu kontrol edecek ve eğer mount edilmemişse otomatik olarak mount edeceğiz.</p>



<p>İçeriğimizde ayrıca, bu işlemleri otomatikleştiren küçük bir Bash betiği oluşturacağız. Bu betik, belirli bir dizinin mount edilip edilmediğini kontrol edecek ve gerektiğinde bu dizini otomatik olarak bağlayacaktır. Adım adım açıklamalarla, hem manuel hem de script tabanlı yöntemleri inceleyeceğiz.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading" id="1-mount-komutunu-kullanarak-mount-durumunu-kontrol-etme">1. <code>mount</code> Komutunu Kullanarak Mount Durumunu Kontrol Etme</h4>



<p><code>mount</code> komutu, mevcut durumda mount edilmiş tüm dosya sistemlerini listelemek için kullanılır. Bu listeyi belirli bir dizin için filtreleyebiliriz. Örneğin, <code>/mnt/backup</code> dizininin mount durumunu kontrol etmek için aşağıdaki komut kullanılabilir:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ mount | awk '{if ($3 == &quot;/mnt/backup&quot;) { exit 0}} ENDFILE{exit -1}'
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">mount</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">|</span><span style="color: #F8F8F2"> </span><span style="color: #50FA7B">awk</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&#39;</span><span style="color: #F1FA8C">{if ($3 == &quot;/mnt/backup&quot;) { exit 0}} ENDFILE{exit -1}</span><span style="color: #E9F284">&#39;</span></span>
<span class="line"></span></code></pre></div>



<p>Bu komut, <code>/mnt/backup</code> dizini bağlıysa <code>0</code> koduyla, bağlı değilse <code>-1</code> hata koduyla sonuç döner. Ancak bu yöntemin dezavantajı, dizin adında boşluklar olması durumunda düzgün çalışmamasıdır.</p>



<p>Örnek olarak, <code>/mnt/backup</code> dizinini mount etme işlemi:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ {
    if mount | awk '{if ($3 == &quot;/mnt/backup&quot;) { exit 0}} ENDFILE{exit -1}'; then
        echo &quot;/mnt/backup zaten bağlı&quot;
    else
        mount /dev/sdc1 /mnt/backup
    fi
}
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">{</span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #FF79C6">if</span><span style="color: #F8F8F2"> </span><span style="color: #50FA7B">mount</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">|</span><span style="color: #F8F8F2"> </span><span style="color: #50FA7B">awk</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&#39;</span><span style="color: #F1FA8C">{if ($3 == &quot;/mnt/backup&quot;) { exit 0}} ENDFILE{exit -1}</span><span style="color: #E9F284">&#39;</span><span style="color: #F8F8F2">; </span><span style="color: #FF79C6">then</span></span>
<span class="line"><span style="color: #F8F8F2">        </span><span style="color: #8BE9FD">echo</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">/mnt/backup zaten bağlı</span><span style="color: #E9F284">&quot;</span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #FF79C6">else</span></span>
<span class="line"><span style="color: #F8F8F2">        </span><span style="color: #50FA7B">mount</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/dev/sdc1</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/mnt/backup</span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #FF79C6">fi</span></span>
<span class="line"><span style="color: #F8F8F2">}</span></span>
<span class="line"></span></code></pre></div>



<p>Bu işlemi daha taşınabilir hale getirmek için bir fonksiyon oluşturabiliriz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ is_mounted() {
    mount | awk -v DIR=&quot;$1&quot; '{if ($3 == DIR) { exit 0}} ENDFILE{exit -1}'
}
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">is_mounted</span><span style="color: #F8F8F2">() </span><span style="color: #F1FA8C">{</span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #50FA7B">mount</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">|</span><span style="color: #F8F8F2"> </span><span style="color: #50FA7B">awk</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-v</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">DIR=</span><span style="color: #E9F284">&quot;</span><span style="color: #FFB86C; font-style: italic">$1</span><span style="color: #E9F284">&quot;</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&#39;</span><span style="color: #F1FA8C">{if ($3 == DIR) { exit 0}} ENDFILE{exit -1}</span><span style="color: #E9F284">&#39;</span></span>
<span class="line"><span style="color: #F8F8F2">}</span></span>
<span class="line"></span></code></pre></div>



<p>Artık bu fonksiyonu kullanarak mount durumunu kontrol edebiliriz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ {
    if is_mounted &quot;/mnt/backup&quot;; then
        echo &quot;/mnt/backup zaten bağlı&quot;
    else
        mount /dev/sdc1 /mnt/backup
    fi
}
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">{</span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #FF79C6">if</span><span style="color: #F8F8F2"> </span><span style="color: #50FA7B">is_mounted</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">/mnt/backup</span><span style="color: #E9F284">&quot;</span><span style="color: #F8F8F2">; </span><span style="color: #FF79C6">then</span></span>
<span class="line"><span style="color: #F8F8F2">        </span><span style="color: #8BE9FD">echo</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">/mnt/backup zaten bağlı</span><span style="color: #E9F284">&quot;</span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #FF79C6">else</span></span>
<span class="line"><span style="color: #F8F8F2">        </span><span style="color: #50FA7B">mount</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/dev/sdc1</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/mnt/backup</span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #FF79C6">fi</span></span>
<span class="line"><span style="color: #F8F8F2">}</span></span>
<span class="line"></span></code></pre></div>



<p>Tek satırda daha pratik bir çözüm olarak:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ mount | awk '{if ($3 == &quot;/mnt/backup&quot;) { exit 0}} ENDFILE{exit -1}' || mount /dev/sdc1 /mnt/backup
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">mount</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">|</span><span style="color: #F8F8F2"> </span><span style="color: #50FA7B">awk</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&#39;</span><span style="color: #F1FA8C">{if ($3 == &quot;/mnt/backup&quot;) { exit 0}} ENDFILE{exit -1}</span><span style="color: #E9F284">&#39;</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">||</span><span style="color: #F8F8F2"> </span><span style="color: #50FA7B">mount</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/dev/sdc1</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/mnt/backup</span></span>
<span class="line"></span></code></pre></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading" id="2-mountpoint-komutu-ile-kontrol-etme">2. <code>mountpoint</code> Komutu ile Kontrol Etme</h4>



<p><code>mountpoint</code> komutu, bir dizinin mount edilip edilmediğini kontrol etmenin en basit yollarından biridir. Bu komut doğrudan dizin ismini alır ve mount durumunu ekrana yazdırır.</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ mountpoint /mnt/backup
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">mountpoint</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/mnt/backup</span></span>
<span class="line"></span></code></pre></div>



<p>Aynı işlemi sessiz modda gerçekleştirmek için:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ {
    if mountpoint -q /mnt/backup; then
        echo &quot;/mnt/backup zaten bağlı&quot;
    else
        mount /dev/sdc1 /mnt/backup
    fi
}
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">{</span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #FF79C6">if</span><span style="color: #F8F8F2"> </span><span style="color: #50FA7B">mountpoint</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-q</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/mnt/backup</span><span style="color: #F8F8F2">; </span><span style="color: #FF79C6">then</span></span>
<span class="line"><span style="color: #F8F8F2">        </span><span style="color: #8BE9FD">echo</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">/mnt/backup zaten bağlı</span><span style="color: #E9F284">&quot;</span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #FF79C6">else</span></span>
<span class="line"><span style="color: #F8F8F2">        </span><span style="color: #50FA7B">mount</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/dev/sdc1</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/mnt/backup</span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #FF79C6">fi</span></span>
<span class="line"><span style="color: #F8F8F2">}</span></span>
<span class="line"></span></code></pre></div>



<p>Bu yöntemi de bir fonksiyon haline getirebiliriz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ is_mounted() {
    mountpoint -q &quot;$1&quot;
}
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">is_mounted</span><span style="color: #F8F8F2">() </span><span style="color: #F1FA8C">{</span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #50FA7B">mountpoint</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-q</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #FFB86C; font-style: italic">$1</span><span style="color: #E9F284">&quot;</span></span>
<span class="line"><span style="color: #F8F8F2">}</span></span>
<span class="line"></span></code></pre></div>



<p>Ve tek satır halinde kullanabiliriz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ mountpoint -q /mnt/backup || mount /dev/sdc1 /mnt/backup
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">mountpoint</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-q</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/mnt/backup</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">||</span><span style="color: #F8F8F2"> </span><span style="color: #50FA7B">mount</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/dev/sdc1</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/mnt/backup</span></span>
<span class="line"></span></code></pre></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading" id="3-findmnt-komutu-ile-kontrol-etme">3. <code>findmnt</code> Komutu ile Kontrol Etme</h4>



<p><code>findmnt</code> komutu, belirli bir dizinin mount durumu hakkında bilgi almak için etkili bir yoldur. Bu komut, belirli bir dizini parametre olarak alır ve sadece o dizinle ilgili bilgileri ekrana getirir.</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ findmnt /mnt/backup
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">findmnt</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/mnt/backup</span></span>
<span class="line"></span></code></pre></div>



<p>Bu komutu bir <code>if-else</code> yapısında kullanabiliriz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ {
    if findmnt /mnt/backup &gt;/dev/null; then
        echo &quot;/mnt/backup zaten bağlı&quot;
    else
        mount /dev/sdc1 /mnt/backup
    fi
}
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">{</span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #FF79C6">if</span><span style="color: #F8F8F2"> </span><span style="color: #50FA7B">findmnt</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/mnt/backup</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">&gt;</span><span style="color: #F1FA8C">/dev/null</span><span style="color: #F8F8F2">; </span><span style="color: #FF79C6">then</span></span>
<span class="line"><span style="color: #F8F8F2">        </span><span style="color: #8BE9FD">echo</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">/mnt/backup zaten bağlı</span><span style="color: #E9F284">&quot;</span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #FF79C6">else</span></span>
<span class="line"><span style="color: #F8F8F2">        </span><span style="color: #50FA7B">mount</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/dev/sdc1</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/mnt/backup</span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #FF79C6">fi</span></span>
<span class="line"><span style="color: #F8F8F2">}</span></span>
<span class="line"></span></code></pre></div>



<p>Bir fonksiyon olarak da kullanabiliriz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ is_mounted() {
    findmnt &quot;$1&quot; &gt;/dev/null
}
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">is_mounted</span><span style="color: #F8F8F2">() </span><span style="color: #F1FA8C">{</span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #50FA7B">findmnt</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #FFB86C; font-style: italic">$1</span><span style="color: #E9F284">&quot;</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">&gt;</span><span style="color: #F1FA8C">/dev/null</span></span>
<span class="line"><span style="color: #F8F8F2">}</span></span>
<span class="line"></span></code></pre></div>



<p>Ve tek satır halinde:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ findmnt /mnt/backup &gt;/dev/null || mount /dev/sdc1 /mnt/backup
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">findmnt</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/mnt/backup</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">&gt;</span><span style="color: #F1FA8C">/dev/null</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">||</span><span style="color: #F8F8F2"> </span><span style="color: #50FA7B">mount</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/dev/sdc1</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/mnt/backup</span></span>
<span class="line"></span></code></pre></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading" id="4-procmounts-dosyas%C4%B1n%C4%B1-okuyarak-kontrol-etme">4. <code>/proc/mounts</code> Dosyasını Okuyarak Kontrol Etme</h4>



<p>Linux sistemlerde, mount edilmiş dosya sistemleri <code>/proc/mounts</code> dosyasında listelenir. Bu dosyayı <code>awk</code> ile okuyarak, belirli bir dizinin mount edilip edilmediğini kontrol edebiliriz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ awk '{if ($2 == &quot;/mnt/backup&quot;) { exit 0}} ENDFILE{exit -1}' &lt; /proc/mounts
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">awk</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&#39;</span><span style="color: #F1FA8C">{if ($2 == &quot;/mnt/backup&quot;) { exit 0}} ENDFILE{exit -1}</span><span style="color: #E9F284">&#39;</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">&lt;</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/proc/mounts</span></span>
<span class="line"></span></code></pre></div>



<p><code>if-else</code> örneğini tekrar yapalım:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ {
    if awk '{if ($2 == &quot;/mnt/backup&quot;) { exit 0}} ENDFILE{exit -1}' &lt; /proc/mounts; then
        echo &quot;/mnt/backup zaten bağlı&quot;
    else
        mount /dev/sdc1 /mnt/backup
    fi
}
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">{</span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #FF79C6">if</span><span style="color: #F8F8F2"> </span><span style="color: #50FA7B">awk</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&#39;</span><span style="color: #F1FA8C">{if ($2 == &quot;/mnt/backup&quot;) { exit 0}} ENDFILE{exit -1}</span><span style="color: #E9F284">&#39;</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">&lt;</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/proc/mounts</span><span style="color: #F8F8F2">; </span><span style="color: #FF79C6">then</span></span>
<span class="line"><span style="color: #F8F8F2">        </span><span style="color: #8BE9FD">echo</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">/mnt/backup zaten bağlı</span><span style="color: #E9F284">&quot;</span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #FF79C6">else</span></span>
<span class="line"><span style="color: #F8F8F2">        </span><span style="color: #50FA7B">mount</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/dev/sdc1</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/mnt/backup</span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #FF79C6">fi</span></span>
<span class="line"><span style="color: #F8F8F2">}</span></span>
<span class="line"></span></code></pre></div>



<p>Bu kodu fonksiyon haline getirebiliriz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ is_mounted() {
    awk -v DIR=&quot;$1&quot; '{if ($2 == DIR) { exit 0}} ENDFILE{exit -1}' &lt; /proc/mounts
}
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">is_mounted</span><span style="color: #F8F8F2">() </span><span style="color: #F1FA8C">{</span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #50FA7B">awk</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-v</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">DIR=</span><span style="color: #E9F284">&quot;</span><span style="color: #FFB86C; font-style: italic">$1</span><span style="color: #E9F284">&quot;</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&#39;</span><span style="color: #F1FA8C">{if ($2 == DIR) { exit 0}} ENDFILE{exit -1}</span><span style="color: #E9F284">&#39;</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">&lt;</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/proc/mounts</span></span>
<span class="line"><span style="color: #F8F8F2">}</span></span>
<span class="line"></span></code></pre></div>



<p>Ve tek satır alternatifleri:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ awk '{if ($2 == &quot;/mnt/backup&quot;) { exit 0}} ENDFILE{exit -1}' &lt; /proc/mounts || mount /dev/sdc1 /mnt/backup
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">awk</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&#39;</span><span style="color: #F1FA8C">{if ($2 == &quot;/mnt/backup&quot;) { exit 0}} ENDFILE{exit -1}</span><span style="color: #E9F284">&#39;</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">&lt;</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/proc/mounts</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">||</span><span style="color: #F8F8F2"> </span><span style="color: #50FA7B">mount</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/dev/sdc1</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/mnt/backup</span></span>
<span class="line"></span></code></pre></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading" id="sonu%C3%A7-1">Sonuç</h4>



<p>Bu rehberde, bir dizinin mount edilip edilmediğini kontrol etmek için çeşitli yöntemleri inceledik ve Bash üzerinde kullanabileceğiniz fonksiyonlar oluşturduk. <code>mount</code>, <code>mountpoint</code>, <code>findmnt</code> ve <code>/proc/mounts</code> dosyasını kullanarak mount kontrolü yapmanın avantajlarını ve sınırlamalarını gösterdik. Artık bir dizinin mount durumu üzerinde tam kontrol sağlayabilir ve ihtiyacınız doğrultusunda otomatik bağlama işlemleri gerçekleştirebilirsiniz.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Komut Satırından E-posta Gönderme: curl kullanımı</title>
		<link>https://cpynet.com.tr/komut-satirindan-e-posta-gonderme-curl-kullanimi/</link>
		
		<dc:creator><![CDATA[Emin Buyuk]]></dc:creator>
		<pubDate>Fri, 01 Nov 2024 11:00:46 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://cpynet-wordpress.wekeea.easypanel.host/komut-satirindan-e-posta-gonderme-curl-kullanimi/</guid>

					<description><![CDATA[Günümüzde en eski elektronik iletişim araçlarından biri olmasına rağmen, e-posta (elektronik posta) çeşitli amaçlarla kullanılmaya devam etmektedir: Otomatik&#8230;]]></description>
										<content:encoded><![CDATA[
<p>Günümüzde en eski elektronik iletişim araçlarından biri olmasına rağmen, e-posta (elektronik posta) çeşitli amaçlarla kullanılmaya devam etmektedir:</p>



<ul class="wp-block-list">
<li>Kişisel iletişim</li>



<li>İdari bildirimler</li>



<li>Uyarılar</li>



<li>Kimlik doğrulama</li>
</ul>



<p>Otomatik uygulamaları nedeniyle, komut satırından e-posta göndermek için pratik bir yol bulmak önemli hale gelmiştir. Bu makalede, <code>curl</code> aracını kullanarak shell&#8217;den e-posta gönderme yöntemlerini inceleyeceğiz. Öncelikle, <code>curl</code> aracını genel hatlarıyla tanıtacak, ardından komut satırından e-posta göndermenin neler içerdiğini keşfedeceğiz ve son olarak <code>curl</code> ile e-posta göndermenin farklı yollarını inceleyeceğiz.</p>



<p>Bu makalede sunulan kodları <strong>Debian 12 (Bookworm)</strong> üzerinde <strong>GNU Bash 5.1.4</strong> ile test ettik. Belirtilmediği takdirde, çoğu POSIX uyumlu ortamda çalışması beklenmektedir.</p>



<h2 class="wp-block-heading" id="1-curl">1. curl</h2>



<p><code>curl</code>, veri aktarımı konusunda yaygın olarak kullanılan bir araçtır. Birçok protokol ve standartı destekler:</p>



<ul class="wp-block-list">
<li>Dosya Transfer Protokolü (FTP), Güvenli Dosya Transfer Protokolü (FTPS), Güvenli Dosya Transfer Protokolü (SFTP), Basit Dosya Transfer Protokolü (TFTP)</li>



<li>Gopher, Gophers</li>



<li>Dict</li>



<li>Hiper Metin Transfer Protokolü (HTTP), HTTPS</li>



<li>Hafif Dizin Erişim Protokolü (LDAP), LDAPS</li>



<li>Posta Ofisi Protokolü sürüm 3 (POP3), POP3S</li>



<li>Güvenli Kopya Protokolü (SCP)</li>



<li>İnternet Mesaj Erişim Protokolü (IMAP)</li>



<li>Sunucu Mesaj Bloğu (SMB), Ortak İnternet Dosya Sistemi (CIFS), SAMBA</li>



<li>Basit Posta Transfer Protokolü (SMTP), SMTPS</li>



<li>Telnet</li>



<li>Güvenli Soket Katmanı (SSL)</li>



<li>SOCKS4, SOCKS5</li>



<li>UNIX soketleri</li>
</ul>



<h3 class="wp-block-heading" id="%C3%B6rnek-kullan%C4%B1m">Örnek Kullanım</h3>



<p>Bir HTTPS isteği yapmak için bir örnek görelim:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ curl --data-urlencode &quot;user=eminbuyuk&quot; --data-urlencode &quot;pass=PAROLA&quot; https://cpynet.com.tr/
{
  &quot;user&quot;: &quot;eminbuyuk&quot;,
  &quot;pass&quot;: &quot;PAROLA&quot;
}
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">curl</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">--data-urlencode</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">user=eminbuyuk</span><span style="color: #E9F284">&quot;</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">--data-urlencode</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">pass=PAROLA</span><span style="color: #E9F284">&quot;</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">https://cpynet.com.tr/</span></span>
<span class="line"><span style="color: #F8F8F2">{</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #50FA7B">&quot;user&quot;</span><span style="color: #8BE9FD">:</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">eminbuyuk</span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">,</span></span>
<span class="line"><span style="color: #F8F8F2">  </span><span style="color: #50FA7B">&quot;pass&quot;</span><span style="color: #8BE9FD">:</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">PAROLA</span><span style="color: #E9F284">&quot;</span></span>
<span class="line"><span style="color: #F8F8F2">}</span></span>
<span class="line"></span></code></pre></div>



<p>Bu örnekte, <code>curl</code> ile <code>https://cpynet.com</code> adresine basit bir HTTPS isteği göndermekteyiz. İki parametre (kullanıcı ve şifre) <code>--data-urlencode</code> seçeneği ile gönderilmektedir. Sunucu, geçen parametreleri ve değerlerini JSON formatında geri döndürmektedir.</p>



<h2 class="wp-block-heading" id="2-komut-sat%C4%B1r%C4%B1ndan-e-posta-g%C3%B6nderme">2. Komut Satırından E-posta Gönderme</h2>



<p><code>curl</code>, birçok büyük posta protokolünü desteklediği için terminalden e-posta göndermek mümkündür. E-posta göndermenin temel bileşenlerini ve adımlarını inceleyelim.</p>



<h3 class="wp-block-heading" id="21-e-posta-sunucusu">2.1. E-posta Sunucusu</h3>



<p>E-posta göndermek için, e-postamızı kabul edebilen ve uygun şekilde işleyebilen bir hizmete ihtiyacımız vardır. Bu hizmet genellikle bir posta sağlayıcısı veya posta sunucusu olarak adlandırılmakta ve aşağıdaki bileşenlerden oluşmaktadır:</p>



<ul class="wp-block-list">
<li><strong>MTA (Mail Transport Agent)</strong>: SMTP aracılığıyla sunucular arası e-posta yönlendirmesi ve aktarımı yapar.</li>



<li><strong>MDA (Mail Delivery Agent)</strong>: POP3 veya IMAP üzerinden e-postaları depolar.</li>



<li><strong>MUA (Mail User Agent)</strong>: Kullanıcı olarak e-postaları alır.</li>
</ul>



<p>Bu bağlamda, bir e-posta sunucusu genellikle SMTP sunucusu ile eş anlamlıdır.</p>



<h3 class="wp-block-heading" id="22-smtp-sunucusu-bulma">2.2. SMTP Sunucusu Bulma</h3>



<p>İlk olarak, uygun bir SMTP sunucusu bulmalıyız:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ nc -v smtp.cpynet.com 587
Connection to smtp.cpynet.com (IP_ADRESİ) 587 port [tcp/submission] succeeded!
220 smtp.cpynet.com ESMTP Postfix
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">nc</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-v</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">smtp.cpynet.com</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">587</span></span>
<span class="line"><span style="color: #50FA7B">Connection</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">to</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">smtp.cpynet.com</span><span style="color: #F8F8F2"> (IP_ADRESİ) 587 port [tcp/submission] succeeded</span><span style="color: #FF79C6">!</span></span>
<span class="line"><span style="color: #50FA7B">220</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">smtp.cpynet.com</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">ESMTP</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">Postfix</span></span>
<span class="line"></span></code></pre></div>



<p>Bu örnekte, netcat (<code>nc</code>) aracını kullanarak <code>smtp.cpynet.com</code> mail sunucusuna bağlantı sağladık. Bu tür bir bağlantıyı <code>smtp.gmail.com</code> gibi diğer sunucularla ve 465 gibi varsayılan portlarla da gerçekleştirebiliriz. Elbette, kendi sunucumuzu yerel olarak da barındırabiliriz.</p>



<h3 class="wp-block-heading" id="23-hesap-olu%C5%9Fturma">2.3. Hesap Oluşturma</h3>



<p>Herhangi bir mail sunucusu ile bağlantı kurabilmek için bir kimlik doğrulama yöntemine ihtiyacımız vardır. Bu genellikle bir kullanıcı adı ve şifre ile sağlanır. Bu kimlik bilgilerini, kendi barındırdığımız mail sunucusunda bir hesap oluşturarak veya daha yaygın olarak, ProtonMail, Gmail gibi çevrimiçi bir e-posta hizmet sağlayıcısında hesap oluşturarak elde edebiliriz.</p>



<p>Hesap oluşturduktan sonra genellikle aşağıdaki gibi bir dizi kimlik bilgisi alırız:</p>



<ul class="wp-block-list">
<li><strong>kullanıcı adı</strong>: <a>eminbuyuk@cpynet.com</a></li>



<li><strong>şifre</strong>: PAROLA</li>
</ul>



<h2 class="wp-block-heading" id="3-curl-ile-e-posta-g%C3%B6nderme">3. curl ile E-posta Gönderme</h2>



<p>Gerekli bilgilere sahip olduktan sonra, e-posta göndermek için <code>curl</code> komutları verelim. Tüm durumlarda, ilgili bilgileri saklamak için açıklayıcı isimlere sahip değişkenler kullanacağız.</p>



<h3 class="wp-block-heading" id="31-temel-e-posta-g%C3%B6nderimi">3.1. Temel E-posta Gönderimi</h3>



<p>Bir alıcıya basit bir e-posta göndermek için şu komutu kullanabiliriz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ curl --ssl-reqd --url &quot;smtps://$SERVER:$PORT&quot; 
    --user &quot;$USER:$PASS&quot; 
    --mail-from &quot;$SENDER_ADDRESS&quot; 
    --mail-rcpt &quot;$RECIPIENT_ADDRESS&quot; 
    --upload-file &quot;$MAIL_CONTENT_FILE&quot;
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">curl</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">--ssl-reqd</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">--url</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">smtps://</span><span style="color: #BD93F9">$SERVER</span><span style="color: #F1FA8C">:</span><span style="color: #BD93F9">$PORT</span><span style="color: #E9F284">&quot;</span><span style="color: #F8F8F2"> </span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #50FA7B">--user</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #BD93F9">$USER</span><span style="color: #F1FA8C">:</span><span style="color: #BD93F9">$PASS</span><span style="color: #E9F284">&quot;</span><span style="color: #F8F8F2"> </span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #50FA7B">--mail-from</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #BD93F9">$SENDER_ADDRESS</span><span style="color: #E9F284">&quot;</span><span style="color: #F8F8F2"> </span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #50FA7B">--mail-rcpt</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #BD93F9">$RECIPIENT_ADDRESS</span><span style="color: #E9F284">&quot;</span><span style="color: #F8F8F2"> </span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #50FA7B">--upload-file</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #BD93F9">$MAIL_CONTENT_FILE</span><span style="color: #E9F284">&quot;</span></span>
<span class="line"></span></code></pre></div>



<p>Burada bazı <code>curl</code> seçeneklerini kullanmaktayız:</p>



<ul class="wp-block-list">
<li><code>--ssl-reqd</code>: SSL/TLS kullanmak için</li>



<li><code>--url</code>: isteğin gönderileceği URL</li>



<li><code>--user</code>: kimlik doğrulama için kullanılacak kimlik bilgileri</li>



<li><code>--mail-from</code>: e-postanın gönderenini belirtir</li>



<li><code>--mail-rcpt</code>: e-postanın alıcısını belirtir</li>



<li><code>--upload-file</code>: e-posta içeriğinin yükleneceği dosya</li>
</ul>



<h3 class="wp-block-heading" id="32-e-posta-i%CC%87%C3%A7eri%C4%9Fi">3.2. E-posta İçeriği</h3>



<p><code>$MAIL_CONTENT_FILE</code> dosyası ya da standart giriş, e-posta gövdesini temsil eden basit bir metin mesajı içerebilir:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ cat mailfile
Bu, e-posta gövdesinin içeriğidir.
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">cat</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">mailfile</span></span>
<span class="line"><span style="color: #50FA7B">Bu,</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">e-posta</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">gövdesinin</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">içeriğidir.</span></span>
<span class="line"></span></code></pre></div>



<p>Ancak, ayrıca SMTP’ye uygun olarak farklı satırlarda iki nokta üst üste ile ayrılmış başlıklar da ekleyebiliriz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="HEADER_NAME: HEADER_VALUE
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">HEADER_NAME:</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">HEADER_VALUE</span></span>
<span class="line"></span></code></pre></div>



<p>Başka standart başlıklar da bulunmaktadır:</p>



<ul class="wp-block-list">
<li><code>From</code>: Gönderenin adı ve adresi</li>



<li><code>To</code>: Alıcının adı ve adresi</li>



<li><code>Subject</code>: E-postanın konusu</li>
</ul>



<p>Daha karmaşık bir e-posta örneği için:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ cat mailfile
From: &quot;Emin Buyuk&quot; &lt;eminbuyuk@cpynet.com&gt;
To: &quot;Müşteri&quot; &lt;musteri@cpynet.com&gt;
Subject: Temel Mesaj
Content-Type: text/html; charset=&quot;utf-8&quot;
Content-Transfer-Encoding: quoted-printable

&lt;b&gt;Kalın metin&lt;/b&gt;
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">cat</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">mailfile</span></span>
<span class="line"><span style="color: #50FA7B">From:</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">Emin Buyuk</span><span style="color: #E9F284">&quot;</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">&lt;</span><span style="color: #F1FA8C">eminbuyuk@cpynet.co</span><span style="color: #F8F8F2">m</span><span style="color: #FF79C6">&gt;</span></span>
<span class="line"><span style="color: #50FA7B">To:</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">Müşteri</span><span style="color: #E9F284">&quot;</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">&lt;</span><span style="color: #F1FA8C">musteri@cpynet.co</span><span style="color: #F8F8F2">m</span><span style="color: #FF79C6">&gt;</span></span>
<span class="line"><span style="color: #50FA7B">Subject:</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">Temel</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">Mesaj</span></span>
<span class="line"><span style="color: #50FA7B">Content-Type:</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">text/html</span><span style="color: #F8F8F2">; </span><span style="color: #BD93F9">charset</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">utf-8</span><span style="color: #E9F284">&quot;</span></span>
<span class="line"><span style="color: #50FA7B">Content-Transfer-Encoding:</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">quoted-printable</span></span>
<span class="line"></span>
<span class="line"><span style="color: #FF79C6">&lt;</span><span style="color: #F8F8F2">b</span><span style="color: #FF79C6">&gt;</span><span style="color: #F8F8F2">Kalın metin</span><span style="color: #FF79C6">&lt;</span><span style="color: #F8F8F2">/b</span><span style="color: #FF79C6">&gt;</span></span>
<span class="line"></span></code></pre></div>



<h3 class="wp-block-heading" id="33-curl-ba%C5%9Fl%C4%B1klar%C4%B1">3.3. curl Başlıkları</h3>



<p>Tüm başlıklar için, <code>mailfile</code> içinde belirttiğimiz başlıkları doğrudan <code>--header</code> seçeneği ile de kullanabiliriz.</p>



<h3 class="wp-block-heading" id="34-ekli-e-posta-g%C3%B6nderme">3.4. Ekli E-posta Gönderme</h3>



<p>E-posta ile birlikte veri ve meta veriler eklemenin yanı sıra, e-postalara ek dosyalar da ekleyebiliriz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ cat xsendmail.sh
#!/usr/bin/env bash

SERVER='smtp.cpynet.com'
PORT='587'
USER='eminbuyuk@cpynet.com'
PASS='PAROLA'
SENDER_ADDRESS=&quot;$USER&quot;
SENDER_NAME='Emin'
RECIPIENT_NAME='Müşteri'
RECIPIENT_ADDRESS='musteri@cpynet.com'
SUBJECT='Eklili E-posta'
MESSAGE='İlk Satırnİkinci Satır'
ATTACHMENT_FILE='/home/user/ekli_dosya.txt'
ATTACHMENT_TYPE=&quot;$(file --mime-type '$ATTACHMENT_FILE' | sed 's/.*: //')&quot;

curl --ssl-reqd --url &quot;smtps://$SERVER:$PORT&quot; 
    --user &quot;$USER:$PASS&quot; 
    --mail-from &quot;$SENDER_ADDRESS&quot; 
    --mail-rcpt &quot;$RECIPIENT_ADDRESS&quot; 
    --header &quot;Subject: $SUBJECT&quot; 
    --header &quot;From: $SENDER_NAME &lt;$SENDER_ADDRESS&gt;&quot; 
    --header &quot;To: $RECIPIENT_NAME &lt;$RECIPIENT_ADDRESS&gt;&quot; 
    --upload-file &lt;(echo -e &quot;$MESSAGEnn&quot; 
    &quot;Content-Type: $ATTACHMENT_TYPE; name=&quot;$(basename &quot;$ATTACHMENT_FILE&quot;)&quot;n&quot; 
    &quot;Content-Transfer-Encoding: base64n&quot; 
    &quot;Content-Disposition: attachment; filename=&quot;$(basename &quot;$ATTACHMENT_FILE&quot;)&quot;n&quot; 
    &quot;$(base64 &quot;$ATTACHMENT_FILE&quot;)&quot;)
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">cat</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">xsendmail.sh</span></span>
<span class="line"><span style="color: #6272A4">#!/usr/bin/env bash</span></span>
<span class="line"></span>
<span class="line"><span style="color: #BD93F9">SERVER</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">&#39;</span><span style="color: #F1FA8C">smtp.cpynet.com</span><span style="color: #E9F284">&#39;</span></span>
<span class="line"><span style="color: #BD93F9">PORT</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">&#39;</span><span style="color: #F1FA8C">587</span><span style="color: #E9F284">&#39;</span></span>
<span class="line"><span style="color: #BD93F9">USER</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">&#39;</span><span style="color: #F1FA8C">eminbuyuk@cpynet.com</span><span style="color: #E9F284">&#39;</span></span>
<span class="line"><span style="color: #BD93F9">PASS</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">&#39;</span><span style="color: #F1FA8C">PAROLA</span><span style="color: #E9F284">&#39;</span></span>
<span class="line"><span style="color: #BD93F9">SENDER_ADDRESS</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">&quot;</span><span style="color: #BD93F9">$USER</span><span style="color: #E9F284">&quot;</span></span>
<span class="line"><span style="color: #BD93F9">SENDER_NAME</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">&#39;</span><span style="color: #F1FA8C">Emin</span><span style="color: #E9F284">&#39;</span></span>
<span class="line"><span style="color: #BD93F9">RECIPIENT_NAME</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">&#39;</span><span style="color: #F1FA8C">Müşteri</span><span style="color: #E9F284">&#39;</span></span>
<span class="line"><span style="color: #BD93F9">RECIPIENT_ADDRESS</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">&#39;</span><span style="color: #F1FA8C">musteri@cpynet.com</span><span style="color: #E9F284">&#39;</span></span>
<span class="line"><span style="color: #BD93F9">SUBJECT</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">&#39;</span><span style="color: #F1FA8C">Eklili E-posta</span><span style="color: #E9F284">&#39;</span></span>
<span class="line"><span style="color: #BD93F9">MESSAGE</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">&#39;</span><span style="color: #F1FA8C">İlk Satırnİkinci Satır</span><span style="color: #E9F284">&#39;</span></span>
<span class="line"><span style="color: #BD93F9">ATTACHMENT_FILE</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">&#39;</span><span style="color: #F1FA8C">/home/user/ekli_dosya.txt</span><span style="color: #E9F284">&#39;</span></span>
<span class="line"><span style="color: #BD93F9">ATTACHMENT_TYPE</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">$(</span><span style="color: #50FA7B">file</span><span style="color: #F1FA8C"> </span><span style="color: #BD93F9">--mime-type</span><span style="color: #F1FA8C"> </span><span style="color: #E9F284">&#39;</span><span style="color: #F1FA8C">$ATTACHMENT_FILE</span><span style="color: #E9F284">&#39;</span><span style="color: #F1FA8C"> </span><span style="color: #FF79C6">|</span><span style="color: #F1FA8C"> </span><span style="color: #50FA7B">sed</span><span style="color: #F1FA8C"> </span><span style="color: #E9F284">&#39;</span><span style="color: #F1FA8C">s/.*: //</span><span style="color: #E9F284">&#39;</span><span style="color: #F1FA8C">)</span><span style="color: #E9F284">&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #50FA7B">curl</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">--ssl-reqd</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">--url</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">smtps://</span><span style="color: #BD93F9">$SERVER</span><span style="color: #F1FA8C">:</span><span style="color: #BD93F9">$PORT</span><span style="color: #E9F284">&quot;</span><span style="color: #F8F8F2"> </span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #50FA7B">--user</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #BD93F9">$USER</span><span style="color: #F1FA8C">:</span><span style="color: #BD93F9">$PASS</span><span style="color: #E9F284">&quot;</span><span style="color: #F8F8F2"> </span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #50FA7B">--mail-from</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #BD93F9">$SENDER_ADDRESS</span><span style="color: #E9F284">&quot;</span><span style="color: #F8F8F2"> </span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #50FA7B">--mail-rcpt</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #BD93F9">$RECIPIENT_ADDRESS</span><span style="color: #E9F284">&quot;</span><span style="color: #F8F8F2"> </span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #50FA7B">--header</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">Subject: </span><span style="color: #BD93F9">$SUBJECT</span><span style="color: #E9F284">&quot;</span><span style="color: #F8F8F2"> </span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #50FA7B">--header</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">From: </span><span style="color: #BD93F9">$SENDER_NAME</span><span style="color: #F1FA8C"> &lt;</span><span style="color: #BD93F9">$SENDER_ADDRESS</span><span style="color: #F1FA8C">&gt;</span><span style="color: #E9F284">&quot;</span><span style="color: #F8F8F2"> </span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #50FA7B">--header</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">To: </span><span style="color: #BD93F9">$RECIPIENT_NAME</span><span style="color: #F1FA8C"> &lt;</span><span style="color: #BD93F9">$RECIPIENT_ADDRESS</span><span style="color: #F1FA8C">&gt;</span><span style="color: #E9F284">&quot;</span><span style="color: #F8F8F2"> </span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #50FA7B">--upload-file</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&lt;(</span><span style="color: #8BE9FD">echo</span><span style="color: #F1FA8C"> </span><span style="color: #BD93F9">-e</span><span style="color: #F1FA8C"> </span><span style="color: #E9F284">&quot;</span><span style="color: #BD93F9">$MESSAGEnn</span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C"> </span></span>
<span class="line"><span style="color: #F1FA8C">    </span><span style="color: #50FA7B">&quot;Content-Type: </span><span style="color: #BD93F9">$ATTACHMENT_TYPE</span><span style="color: #50FA7B">; name=&quot;$(basename</span><span style="color: #F1FA8C"> </span><span style="color: #E9F284">&quot;</span><span style="color: #BD93F9">$ATTACHMENT_FILE</span><span style="color: #E9F284">&quot;)&quot;</span><span style="color: #F1FA8C">n</span><span style="color: #E9F284">&quot;</span><span style="color: #F8F8F2"> </span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #50FA7B">&quot;Content-Transfer-Encoding: base64n&quot;</span><span style="color: #F8F8F2"> </span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #50FA7B">&quot;Content-Disposition: attachment; filename=&quot;</span><span style="color: #50FA7B">$(basename</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&quot;</span><span style="color: #BD93F9">$ATTACHMENT_FILE</span><span style="color: #E9F284">&quot;</span><span style="color: #F8F8F2">)</span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">n</span><span style="color: #E9F284">&quot;</span><span style="color: #F8F8F2"> </span></span>
<span class="line"><span style="color: #F8F8F2">    </span><span style="color: #50FA7B">&quot;</span><span style="color: #F1FA8C">$(</span><span style="color: #50FA7B">base64</span><span style="color: #F1FA8C"> </span><span style="color: #E9F284">&quot;</span><span style="color: #BD93F9">$ATTACHMENT_FILE</span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">)</span><span style="color: #50FA7B">&quot;</span><span style="color: #F8F8F2">)</span></span>
<span class="line"></span></code></pre></div>



<p>Bu örnekte, basit bir e-posta ile birlikte bir dosya ekleyerek gönderiyoruz. Yine de, <code>ATTACHMENT_TYPE</code> değişkeni ile dosyanın içeriği belirlenmekte ve başlıklar arasına yerleştirilmektedir.</p>



<h2 class="wp-block-heading" id="4-sonu%C3%A7">4. Sonuç</h2>



<p>Bu makalede, <code>curl</code> ile terminalden e-posta gönderme yöntemlerini ayrıntılı bir şekilde inceledik. <code>curl</code>, çok çeşitli uygulamalar için kullanılabilen güçlü bir araçtır. E-posta gönderme özellikleri sayesinde otomatik bildirimler ve uyarılar gibi işlevsellikleri kolayca gerçekleştirebiliriz. Bu örnekler ve yaklaşımlar, e-posta gönderiminde daha fazla deneyim kazanmak isteyen geliştiricilere ve sistem yöneticilerine yardımcı olacaktır.</p>



<p>E-posta göndermenin, sunucular arası iletişim için sağladığı kolaylıkları ve otomasyon yeteneklerini göz önünde bulundurarak, bu yöntemi uygulamalarımızda kullanabiliriz.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Linux&#8217;ta Çalışan Bir Uygulamanın Dinlediği Portları Tespit Etme</title>
		<link>https://cpynet.com.tr/linuxta-calisan-bir-uygulamanin-dinledigi-portlari-tespit-etme/</link>
		
		<dc:creator><![CDATA[Emin Buyuk]]></dc:creator>
		<pubDate>Fri, 01 Nov 2024 08:00:39 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://cpynet-wordpress.wekeea.easypanel.host/linuxta-calisan-bir-uygulamanin-dinledigi-portlari-tespit-etme/</guid>

					<description><![CDATA[IP adresleri, bir ağdaki cihazları benzersiz olarak tanımlar. Portlar ise bir cihaz üzerindeki hizmetleri birbirinden ayırır. TCP ve&#8230;]]></description>
										<content:encoded><![CDATA[
<p>IP adresleri, bir ağdaki cihazları benzersiz olarak tanımlar. Portlar ise bir cihaz üzerindeki hizmetleri birbirinden ayırır. TCP ve IP protokolleri aracılığıyla iletişim ve veri alışverişine olanak sağlayarak internetin düzgün çalışmasında önemli bir rol oynarlar. Bu rehberde, Apache HTTP sunucusunun hangi IP adresi ve portta çalıştığını bulmak için kullanabileceğimiz komutlardan bahsedeceğiz.</p>



<h3 class="wp-block-heading" id="1-lsof-komutunu-kullanma">1. <code>lsof</code> Komutunu Kullanma</h3>



<p><code>lsof</code> komutu, bir Linux sisteminde açık dosyalar, işlemler ve ağ bağlantıları arasındaki ilişkiyi gösterir. Bu, özellikle sorun giderme aşamalarında yardımcı olur ve kaynak kullanımını belirler. Özellikle dosya tanımlayıcıları ve ağ soketleri hakkında ayrıntılı bilgi sunar.</p>



<h4 class="wp-block-heading" id="komutun-kullan%C4%B1m%C4%B1">Komutun Kullanımı:</h4>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ sudo lsof -i -P -n | grep apache2
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">lsof</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-i</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-P</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-n</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">|</span><span style="color: #F8F8F2"> </span><span style="color: #50FA7B">grep</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">apache2</span></span>
<span class="line"></span></code></pre></div>



<p>Eğer CentOS gibi bazı dağıtımlarda çalışıyorsanız, <code>apache2</code> yerine <code>httpd</code> kullanmanız gerekebilir:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ lsof -i -P -n | grep httpd
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">lsof</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-i</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-P</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-n</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">|</span><span style="color: #F8F8F2"> </span><span style="color: #50FA7B">grep</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">httpd</span></span>
<span class="line"></span></code></pre></div>



<p>Bu komut, açık ağ bağlantılarını listeler ve sonuçları yalnızca Apache ile ilgili olanları gösterecek şekilde <code>grep</code> ile filtreler. Örneğin:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="apache2   1687     root    4u  IPv6  25609      0t0  TCP *:80 (LISTEN)
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">apache2</span><span style="color: #F8F8F2">   </span><span style="color: #BD93F9">1687</span><span style="color: #F8F8F2">     </span><span style="color: #F1FA8C">root</span><span style="color: #F8F8F2">    </span><span style="color: #BD93F9">4</span><span style="color: #F1FA8C">u</span><span style="color: #F8F8F2">  </span><span style="color: #F1FA8C">IPv6</span><span style="color: #F8F8F2">  </span><span style="color: #BD93F9">25609</span><span style="color: #F8F8F2">      </span><span style="color: #BD93F9">0</span><span style="color: #F1FA8C">t0</span><span style="color: #F8F8F2">  </span><span style="color: #F1FA8C">TCP</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9; font-style: italic">*</span><span style="color: #F1FA8C">:80</span><span style="color: #F8F8F2"> (LISTEN)</span></span>
<span class="line"></span></code></pre></div>



<p>Çıktıda yer alan <code>*:80</code>, Apache’nin 80 numaralı port üzerinden tüm ağ arayüzlerinden gelen bağlantılara açık olduğunu gösterir. Buradaki <code>*:80</code> ifadesi, Apache’nin yalnızca localhost ile sınırlı olmadığını, tüm mevcut ağ arayüzlerinden erişilebilir olduğunu belirtir.</p>



<h4 class="wp-block-heading" id="komutun-parametreleri">Komutun Parametreleri:</h4>



<ul class="wp-block-list">
<li><code>-i</code>: Ağ bağlantılarına ait bilgileri gösterir.</li>



<li><code>-P</code>: Port numaralarının isimlere çevrilmesini engeller.</li>



<li><code>-n</code>: Ağ numaralarının hostname (makine adı) çözümlemesini yapmaz.</li>
</ul>



<p>Bu parametrelerle, komut hızlı ve doğrudan IP adresi ve port bilgilerini gösterir.</p>



<h3 class="wp-block-heading" id="2-netstat-komutunu-kullanma">2. <code>netstat</code> Komutunu Kullanma</h3>



<p><code>netstat</code> komutu, Linux işletim sisteminde ağ bağlantıları, yönlendirme tabloları ve arayüz istatistikleri hakkında bilgi sağlar. <code>netstat</code> ile Apache’nin hangi IP adresi ve portu kullandığını öğrenebiliriz.</p>



<h4 class="wp-block-heading" id="aktif-ba%C4%9Flant%C4%B1lar%C4%B1-i%CC%87ncelemek-i%CC%87%C3%A7in">Aktif Bağlantıları İncelemek İçin:</h4>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ sudo netstat -tlp
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">netstat</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-tlp</span></span>
<span class="line"></span></code></pre></div>



<p>Bu komut, yalnızca dinleme durumundaki TCP bağlantılarını listeler. Çıktı şu şekildedir:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="tcp6       0      0 [::]:http               [::]:*                  LISTEN      1662/apache2
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">tcp6</span><span style="color: #F8F8F2">       </span><span style="color: #BD93F9">0</span><span style="color: #F8F8F2">      </span><span style="color: #BD93F9">0</span><span style="color: #F8F8F2"> [::]:http               [::]:</span><span style="color: #FF79C6">*</span><span style="color: #F8F8F2">                  LISTEN      1662/apache2</span></span>
<span class="line"></span></code></pre></div>



<p>Burada Apache, hem IPv4 hem de IPv6 arayüzlerinde, HTTP portu üzerinden gelen bağlantılara açıktır. <code>0.0.0.0</code> ve <code>[::]</code> adresleri, sunucunun herhangi bir ağ arayüzünden gelen bağlantıları kabul edecek şekilde yapılandırıldığını gösterir.</p>



<h4 class="wp-block-heading" id="grep-ile-apache%E2%80%99ye-%C3%B6zel-filtreleme"><code>grep</code> ile Apache’ye Özel Filtreleme:</h4>



<p>Belirli bir servis için çıktıyı filtrelemek için <code>grep</code> komutunu kullanabiliriz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ sudo netstat -tlp | grep apache2
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">netstat</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-tlp</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">|</span><span style="color: #F8F8F2"> </span><span style="color: #50FA7B">grep</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">apache2</span></span>
<span class="line"></span></code></pre></div>



<p>Bu komutla Apache’nin yalnızca aktif IPv6 bağlantılarını görebiliriz. Çıktıdaki <code>[::]:http</code> ifadesi, Apache’nin tüm IPv6 arayüzlerinde 80 numaralı portu dinlediğini belirtir.</p>



<h3 class="wp-block-heading" id="3-ss-komutunu-kullanma">3. <code>ss</code> Komutunu Kullanma</h3>



<p><code>ss</code>, ağ soketleri hakkında bilgi sağlayan bir komuttur. <code>ss</code>, modern Linux sistemlerinde <code>netstat</code>’ın yerine kullanılan daha güncel bir araçtır.</p>



<h4 class="wp-block-heading" id="komut-kullan%C4%B1m%C4%B1">Komut Kullanımı:</h4>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ sudo ss -tlwnp | grep LISTEN
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">ss</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-tlwnp</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">|</span><span style="color: #F8F8F2"> </span><span style="color: #50FA7B">grep</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">LISTEN</span></span>
<span class="line"></span></code></pre></div>



<p>Bu komut, dinleme ve ham TCP soketleri hakkında ayrıntılı bilgi sunar. Çıktı şu şekildedir:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="tcp LISTEN 0 511 :80 *: users:((&quot;apache2&quot;,pid=10724,fd=4), ...)
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">tcp</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">LISTEN</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">0</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">511</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">:80</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9; font-style: italic">*</span><span style="color: #F1FA8C">:</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">users:</span><span style="color: #F8F8F2">((&quot;apache</span><span style="color: #BD93F9">2</span><span style="color: #F8F8F2">&quot;</span><span style="color: #FF79C6">,</span><span style="color: #F8F8F2">pid</span><span style="color: #FF79C6">=</span><span style="color: #BD93F9">10724</span><span style="color: #FF79C6">,</span><span style="color: #F8F8F2">fd</span><span style="color: #FF79C6">=</span><span style="color: #BD93F9">4</span><span style="color: #F8F8F2">)</span><span style="color: #FF79C6">,</span><span style="color: #F8F8F2"> ...)</span></span>
<span class="line"></span></code></pre></div>



<p>Bu çıktıda <code>*:80</code> ifadesi, Apache’nin tüm arayüzlerde port 80 üzerinden dinleme yaptığını gösterir. Apache’nin çoklu işlem veya çoklu iş parçacıklı modeli kullanarak gelen bağlantılarla başa çıktığını görebiliriz.</p>



<h4 class="wp-block-heading" id="parametrelerin-a%C3%A7%C4%B1klamas%C4%B1">Parametrelerin Açıklaması:</h4>



<ul class="wp-block-list">
<li><code>-t</code>: TCP soketlerini gösterir.</li>



<li><code>-l</code>: Sadece dinleme modundaki soketleri listeler.</li>



<li><code>-w</code>: Ham soketleri gösterir.</li>



<li><code>-n</code>: Host adlarını çözümlemez, adresleri sayısal olarak gösterir.</li>



<li><code>-p</code>: Her soketle ilişkilendirilmiş işlem kimliklerini gösterir.</li>
</ul>



<h3 class="wp-block-heading" id="4-nmap-komutunu-kullanma">4. <code>nmap</code> Komutunu Kullanma</h3>



<p><code>nmap</code>, ağ keşfi ve güvenlik taramaları için güçlü bir açık kaynak aracıdır. Eğer sisteminizde <code>nmap</code> yüklü değilse, aşağıdaki komut ile kurabilirsiniz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ sudo apt install nmap
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">apt</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">install</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">nmap</span></span>
<span class="line"></span></code></pre></div>



<h4 class="wp-block-heading" id="apache%E2%80%99nin-ip-ve-port-bilgilerini-g%C3%B6rmek-i%CC%87%C3%A7in">Apache’nin IP ve Port Bilgilerini Görmek İçin:</h4>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ sudo nmap -p 80 localhost
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">nmap</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-p</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">80</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">localhost</span></span>
<span class="line"></span></code></pre></div>



<p>Çıktı şu şekildedir:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="PORT     STATE SERVICE
80/tcp   open  http
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">PORT</span><span style="color: #F8F8F2">     </span><span style="color: #F1FA8C">STATE</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">SERVICE</span></span>
<span class="line"><span style="color: #50FA7B">80/tcp</span><span style="color: #F8F8F2">   </span><span style="color: #F1FA8C">open</span><span style="color: #F8F8F2">  </span><span style="color: #F1FA8C">http</span></span>
<span class="line"></span></code></pre></div>



<p>Buradaki açık 80 numaralı port, bir web sunucusunun çalıştığını gösterir.</p>



<h3 class="wp-block-heading" id="5-apachectl-komutu-kullanma">5. <code>apachectl</code> Komutu Kullanma</h3>



<p><code>apachectl</code>, Apache’nin sanal ana bilgisayar yapılandırmasını gösterir. Bu komut ile Apache’nin hangi IP adreslerinde ve portlarda dinlediğini görebiliriz.</p>



<h4 class="wp-block-heading" id="kullan%C4%B1m%C4%B1">Kullanımı:</h4>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ apachectl -S
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">apachectl</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-S</span></span>
<span class="line"></span></code></pre></div>



<p>Çıktı, Apache’nin tüm IP adresleri üzerinden, özellikle 127.0.1.1 üzerinde port 80’de dinleme yaptığını gösterir.</p>



<h3 class="wp-block-heading" id="6-httpdconf-dosyas%C4%B1n%C4%B1-i%CC%87nceleme">6. <code>httpd.conf</code> Dosyasını İnceleme</h3>



<p>Apache HTTP Sunucusu’nun ana yapılandırma dosyası olan <code>httpd.conf</code> dosyasında, sunucunun davranışını özelleştirebilir ve sanal ana bilgisayarları yönetebilirsiniz. Apache’nin hangi IP adresi ve portu dinlediğini görmek için bu dosyayı inceleyebilirsiniz.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Bu komutlarla, Apache’nin ağ üzerindeki erişilebilirlik bilgilerini kolayca görebilirsiniz. Sunucu yöneticileri için bu bilgileri öğrenmek, özellikle sorun giderme ve güvenlik incelemelerinde oldukça faydalıdır.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Linux’ta GRUB Menüsüne İşletim Sistemi Ekleme Yöntemleri</title>
		<link>https://cpynet.com.tr/linuxta-grub-menusune-isletim-sistemi-ekleme-yontemleri/</link>
		
		<dc:creator><![CDATA[Emin Buyuk]]></dc:creator>
		<pubDate>Fri, 01 Nov 2024 05:00:41 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://cpynet-wordpress.wekeea.easypanel.host/linuxta-grub-menusune-isletim-sistemi-ekleme-yontemleri/</guid>

					<description><![CDATA[Bu rehberde, birden fazla işletim sistemi (dual-boot veya multi-boot) kullanırken, diğer işletim sistemlerinin GRUB menüsünde görüntülenmeme sorununu nasıl&#8230;]]></description>
										<content:encoded><![CDATA[
<p>Bu rehberde, birden fazla işletim sistemi (dual-boot veya multi-boot) kullanırken, diğer işletim sistemlerinin GRUB menüsünde görüntülenmeme sorununu nasıl çözebileceğimizi inceleyeceğiz. Kolaylık olması açısından GRUB 2 yerine GRUB terimini kullanacağız.</p>



<h3 class="wp-block-heading" id="1-os-prober">1. os-prober</h3>



<p>GRUB bootloader, Linux kurulumu sırasında varsayılan olarak yüklenir. Bu süreçte, GRUB diskteki diğer önyüklenebilir (bootable) bölümleri otomatik olarak bulmalı ve onları GRUB menüsüne eklemelidir. Ancak, bazen bu işlem başarısız olabilir ve diğer işletim sistemlerini kendimiz eklememiz gerekebilir.</p>



<p>Bu durumda <strong>os-prober</strong> komutunu kullanarak, GRUB’un diğer işletim sistemlerini tanımlayamama sorununu düzeltebiliriz. os-prober, diskteki önyüklenebilir bölümlerde bulunan diğer işletim sistemlerini listeleyen bir komuttur.</p>



<p>Kurulum sırasında GRUB menüsünde tüm tespit edilen işletim sistemlerini göstermek için kullanılır. Ayrıca, kurulum tamamlandıktan sonra GRUB menüsünü yeniden yapılandırmak için de kullanılabilir.</p>



<h4 class="wp-block-heading" id="os-prober-ile-os-tespiti">os-prober ile OS Tespiti</h4>



<p>os-prober bazen diğer işletim sistemlerini bulamayabilir. Örneğin, Ubuntu 20.04&#8217;te os-prober varsayılan olarak devre dışıdır, bu nedenle kurulum sırasında başka işletim sistemlerini tespit edemez. os-prober’i çalıştıralım:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ sudo os-prober
/dev/sda1:Windows 10:Windows:chain
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">os-prober</span></span>
<span class="line"><span style="color: #50FA7B">/dev/sda1:Windows</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">10</span><span style="color: #F1FA8C">:Windows:chain</span></span>
<span class="line"></span></code></pre></div>



<p>Eğer sistemimiz çift önyükleme (dual-boot) yapılmışsa, ikinci işletim sisteminin adı ile benzer bir çıktı alırız. Aksi halde, sadece tek bir işletim sisteminin bulunduğunu gösteren boş bir çıktı alırız.</p>



<p>Eğer şu sonucu alırsak, os-prober yüklü değildir ve kurmamız gerekir:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ sudo os-prober
Command 'os-prober' not found, but can be installed with:
sudo apt install os-prober
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">os-prober</span></span>
<span class="line"><span style="color: #50FA7B">Command</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&#39;</span><span style="color: #F1FA8C">os-prober</span><span style="color: #E9F284">&#39;</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">not</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">found,</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">but</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">can</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">be</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">installed</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">with:</span></span>
<span class="line"><span style="color: #50FA7B">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">apt</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">install</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">os-prober</span></span>
<span class="line"></span></code></pre></div>



<p>os-prober’in etkin olup olmadığını kontrol edelim:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ sudo cat /etc/default/grub | grep 'GRUB_DISABLE_OS_PROBER'
GRUB_DISABLE_OS_PROBER=true
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">cat</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/etc/default/grub</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">|</span><span style="color: #F8F8F2"> </span><span style="color: #50FA7B">grep</span><span style="color: #F8F8F2"> </span><span style="color: #E9F284">&#39;</span><span style="color: #F1FA8C">GRUB_DISABLE_OS_PROBER</span><span style="color: #E9F284">&#39;</span></span>
<span class="line"><span style="color: #BD93F9">GRUB_DISABLE_OS_PROBER</span><span style="color: #FF79C6">=</span><span style="color: #BD93F9">true</span></span>
<span class="line"></span></code></pre></div>



<p>Çıktı &#8220;false&#8221; ise, os-prober aktif demektir. Aksi takdirde, &#8220;true&#8221; ise, etkin değil demektir. Bu değeri <strong>false</strong> yaparak etkinleştirebiliriz. Eğer bu ayar dosyada yoksa, <code>/etc/default/grub</code> dosyasına şu satırı ekleyelim:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="GRUB_DISABLE_OS_PROBER=false
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #BD93F9">GRUB_DISABLE_OS_PROBER</span><span style="color: #FF79C6">=</span><span style="color: #BD93F9">false</span></span>
<span class="line"></span></code></pre></div>



<p>Daha sonra dosyayı kaydedelim. GRUB menüsünü güncelleyelim ve değişikliklerin etkili olması için sistemi yeniden başlatalım:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ sudo update-grub
$ sudo reboot -f
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">update-grub</span></span>
<span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">reboot</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-f</span></span>
<span class="line"></span></code></pre></div>



<p>Yeniden başlattıktan sonra, keşfedilen işletim sistemlerinin GRUB menüsünde görünmesi gerekir.</p>



<p><strong>Not:</strong> os-prober güvenli değildir, çünkü diskteki tüm bölümleri root yetkileriyle mount ederek diğer işletim sistemlerini tespit eder. Bu, root yetkilerinin ele geçirilmesi için kullanılabilir, bu nedenle bazı dağıtımlarda os-prober devre dışı bırakılmıştır.</p>



<h3 class="wp-block-heading" id="2-grub%E2%80%99u-yeniden-kurma">2. GRUB’u Yeniden Kurma</h3>



<p>Bazı durumlarda, bir güncellemeden sonra Windows diskin MBR’sini (Master Boot Record) değiştirebilir. Bu durum, BIOS’un doğrudan Windows bootloader’a geçmesine sebep olabilir. Aynı durum, ikinci bir işletim sistemi olarak Windows kurulumu sonrasında da meydana gelebilir.</p>



<p>Her iki durumda da GRUB’u yeniden kurmamız gerekir. Eğer Linux’e erişemiyorsak, bir live CD/USB kullanarak Linux terminaline erişim sağlayabiliriz.</p>



<p>Disk sürücüsünü ve önyüklenebilir bölümleri listelemek için:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ sudo fdisk -l
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">fdisk</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-l</span></span>
<span class="line"></span></code></pre></div>



<p>Örneğin, sistemimizdeki tek disk &#8220;sda&#8221; olarak listelenmişse, GRUB’u yeniden kurmak için şu komutları çalıştıralım:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ sudo mount /dev/sda1 /mnt
$ sudo grub-install --boot-directory=/mnt/boot /dev/sda
$ sudo update-grub
$ sudo reboot -f
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">mount</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/dev/sda1</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/mnt</span></span>
<span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">grub-install</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">--boot-directory=/mnt/boot</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">/dev/sda</span></span>
<span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">update-grub</span></span>
<span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">reboot</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-f</span></span>
<span class="line"></span></code></pre></div>



<p>Eğer Windows ile çift veya çoklu önyükleme yapmayı planlıyorsanız, önce Windows’u, ardından diğer Linux dağıtımlarını kurmalısınız.</p>



<h3 class="wp-block-heading" id="3-boot-repair-kullan%C4%B1m%C4%B1">3. Boot-Repair Kullanımı</h3>



<p>Boot-Repair, genellikle karşılaşılan önyükleme sorunlarını çözmek için kullanılan bir araçtır. Boot-Repair, önyükleme bilgisi oluşturma, GRUB yapılandırma, GRUB’u temizleme ve disk üzerinde GRUB’u kurmak gibi işlemleri yapar.</p>



<p>Boot-Repair’i yüklemek için:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ sudo add-apt-repository ppa:yannubuntu/boot-repair &amp;&amp; sudo apt update
$ sudo apt install -y boot-repair &amp;&amp; boot-repair
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">add-apt-repository</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">ppa:yannubuntu/boot-repair</span><span style="color: #F8F8F2"> &amp;&amp; </span><span style="color: #50FA7B">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">apt</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">update</span></span>
<span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">apt</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">install</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">-y</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">boot-repair</span><span style="color: #F8F8F2"> &amp;&amp; </span><span style="color: #50FA7B">boot-repair</span></span>
<span class="line"></span></code></pre></div>



<p>Yüklendikten sonra Sistem Ayarları altında Yönetim (Administration) bölümünde bulunabilir. Uygulamayı başlatıp “Önerilen Onarım” (Recommended Repair) seçeneğini izleyerek işlemleri tamamlayabiliriz.</p>



<h3 class="wp-block-heading" id="4-sonu%C3%A7">4. Sonuç</h3>



<p>Bu rehberde, GRUB menüsüne diğer işletim sistemlerini eklemenin yollarını inceledik. os-prober ile diğer işletim sistemlerini nasıl keşfedeceğimizi, GRUB’u nasıl yeniden kuracağımızı ve Boot-Repair aracını nasıl kullanacağımızı öğrendik.</p>



<p>Ekstra işletim sistemlerini eklerken önyüklenebilir bölümlerin farkında olmak önemlidir. Linux sistemine erişimi kaybedersek, live CD/USB ile kurtarma yapılabileceğini unutmayalım.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Linux&#8217;ta Link Aggregation ile Ağ Performansını Artırma</title>
		<link>https://cpynet.com.tr/linuxta-link-aggregation-ile-ag-performansini-artirma/</link>
		
		<dc:creator><![CDATA[Emin Buyuk]]></dc:creator>
		<pubDate>Thu, 31 Oct 2024 12:00:46 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://cpynet-wordpress.wekeea.easypanel.host/linuxta-link-aggregation-ile-ag-performansini-artirma/</guid>

					<description><![CDATA[Linux ağ yönetiminde, ağ geçiş kapasitesini (network throughput) maksimize etmek birçok sistem yöneticisi ve ağ mühendisinin ana hedefidir.&#8230;]]></description>
										<content:encoded><![CDATA[
<p>Linux ağ yönetiminde, ağ geçiş kapasitesini (network throughput) maksimize etmek birçok sistem yöneticisi ve ağ mühendisinin ana hedefidir. Bu hedefe ulaşmanın etkili yollarından biri de bağlantı birleştirme kullanımıdır.</p>



<p>Bu dokümanda, Linux ortamlarında iki Ethernet kartını kullanarak bağlantı birleştirmenin nasıl yapılandırılacağını inceleyeceğiz. Debian ve Red Hat Enterprise Linux (RHEL) sistemlerinde bağlantı birleştirme ayarlarına odaklanacağız. Testlerimizi AlmaLinux 8 ve Debian 12 üzerinde gerçekleştirdik.</p>



<h3 class="wp-block-heading" id="1-ba%C4%9Flant%C4%B1-birle%C5%9Ftirme-nedir">1. Bağlantı Birleştirme Nedir?</h3>



<p>Bağlantı birleştirme, diğer adıyla “bonding” veya “teaming,” birden fazla ağ bağlantısını paralel olarak kullanmamıza olanak tanıyan bir yöntemdir. Bu yöntem, ağ talebinin tek bir Ethernet kartının kapasitesini aştığı ortamlarda özellikle kullanışlıdır.</p>



<p>Bağlantı birleştirme, bant genişliğini artırır ve ağın kesintisiz çalışmasını sağlar. Aynı hızdaki iki bağlantıyı birleştirdiğimizde, ağ kapasitesini etkin bir şekilde iki katına çıkarabiliriz. Ayrıca, birleşik bağlantılardan biri arızalansa bile iletişim devam eder. Bu da yüksek kullanılabilirlik gerektiren kritik sistemler ve uygulamalar için mükemmel bir seçimdir.</p>



<h3 class="wp-block-heading" id="11-ba%C4%9Flant%C4%B1-birle%C5%9Ftirme-modlar%C4%B1n%C4%B1-ke%C5%9Ffetmek">1.1. Bağlantı Birleştirme Modlarını Keşfetmek</h3>



<p>Her birleştirme modu farklı davranışlar ve avantajlar sunar. İşte en yaygın kullanılan bağlantı birleştirme modları ve kullanım senaryoları:</p>



<ul class="wp-block-list">
<li><strong>Balance-RR (Round Robin) – Mod 0:</strong> Paketleri ardışık olarak tüm bağlantılar üzerinden ileterek yük dengeleme ve hata toleransı sağlar.</li>



<li><strong>Active-Backup – Mod 1:</strong> Sadece bir bağlantı aktif kalır, diğerleri yedek olarak bekler. Aktif bağlantı arızalandığında, yedek bağlantı devreye girer.</li>



<li><strong>Balance-XOR – Mod 2:</strong> Kaynak ve hedef MAC adreslerine dayalı olarak birleştirilen bağlantılar üzerinden yük dengelemesi yapar.</li>



<li><strong>Broadcast – Mod 3:</strong> Tüm iletimler tüm bağlantılardan geçer ve yüksek düzeyde yedeklilik sağlar.</li>



<li><strong>802.3ad (LACP) – Mod 4:</strong> Dinamik bağlantı birleştirmeyi destekleyen LACP özellikli anahtarlar gerektirir.</li>



<li><strong>Balance-TLB (Adaptive Transmit Load Balancing) – Mod 5:</strong> Çıkış trafiğini mevcut yük temelinde dinamik olarak dağıtır.</li>



<li><strong>Balance-ALB (Adaptive Load Balancing) – Mod 6:</strong> Hem giriş hem çıkış trafiğini optimize ederek yük dengelemesi yapar.</li>
</ul>



<h3 class="wp-block-heading" id="2-ba%C4%9Flant%C4%B1-birle%C5%9Ftirme-kurulumu">2. Bağlantı Birleştirme Kurulumu</h3>



<p>Farklı Linux dağıtımları, bağlantı birleştirme için farklı araçlar ve yapılandırmalar gerektirebilir. Debian tabanlı ve RHEL tabanlı sistemler için aşağıdaki adımları takip ederek güçlü ve yüksek performanslı bir ağ yapılandırması oluşturabiliriz.</p>



<h4 class="wp-block-heading" id="21-gereksinimler">2.1. Gereksinimler</h4>



<p>Bağlantı birleştirme yapılandırmasına başlamadan önce, Linux sistemimizde yönetici haklarına sahip olduğumuzdan ve her iki Ethernet kartının tanınıp çalıştığından emin olmalıyız. Ayrıca, bağlantı birleştirme için gerekli araçları kurmamız gerekir. Bu araçlar dağıtımdan dağıtıma farklılık gösterebilir.</p>



<h4 class="wp-block-heading" id="22-debian-tabanl%C4%B1-sistemlerde-yap%C4%B1land%C4%B1rma">2.2. Debian Tabanlı Sistemlerde Yapılandırma</h4>



<p>Debian ve Ubuntu gibi Debian tabanlı sistemlerde, ilk adım olarak ifenslave paketini kurmamız gerekmektedir. Bu paket, birleştirilmiş arayüzleri yapılandırmak ve yönetmek için kullanılır:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="$ sudo apt install ifenslave
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">$ sudo apt install ifenslave</span></span>
<span class="line"></span></code></pre></div>



<p>Sonrasında, birleştirmek istediğimiz ağ arayüzlerini yapılandırmamız gerekir. Bunun için <code>/etc/network/interfaces</code> dosyasını düzenleyebiliriz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="$ cat /etc/network/interfaces
auto bond0
iface bond0 inet dhcp
slaves eth0 eth1
bond-mode 0
bond-miimon 100
bond-downdelay 200
bond-updelay 200
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">$ cat </span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">etc</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">network</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">interfaces</span></span>
<span class="line"><span style="color: #F8F8F2">auto bond0</span></span>
<span class="line"><span style="color: #F8F8F2">iface bond0 inet dhcp</span></span>
<span class="line"><span style="color: #F8F8F2">slaves eth0 eth1</span></span>
<span class="line"><span style="color: #F8F8F2">bond</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">mode </span><span style="color: #BD93F9">0</span></span>
<span class="line"><span style="color: #F8F8F2">bond</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">miimon </span><span style="color: #BD93F9">100</span></span>
<span class="line"><span style="color: #F8F8F2">bond</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">downdelay </span><span style="color: #BD93F9">200</span></span>
<span class="line"><span style="color: #F8F8F2">bond</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">updelay </span><span style="color: #BD93F9">200</span></span>
<span class="line"></span></code></pre></div>



<p>Yapılandırmayı tamamladıktan sonra ağ hizmetini yeniden başlatarak değişiklikleri uygulayabiliriz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="$ sudo systemctl restart networking
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">$ sudo systemctl restart networking</span></span>
<span class="line"></span></code></pre></div>



<h4 class="wp-block-heading" id="23-rhel-tabanl%C4%B1-sistemlerde-yap%C4%B1land%C4%B1rma">2.3. RHEL Tabanlı Sistemlerde Yapılandırma</h4>



<p>RHEL ve AlmaLinux gibi sistemlerde kanal birleştirme arayüzü oluşturmak için <code>/etc/sysconfig/network-scripts/</code> dizininde bir yapılandırma dosyası oluşturmalıyız:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="$ cat /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
ONBOOT=yes
BOOTPROTO=dhcp
BONDING_OPTS=&quot;mode=0 miimon=100&quot;
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">$ cat </span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">etc</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">sysconfig</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">network</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">scripts</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">ifcfg</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">bond0</span></span>
<span class="line"><span style="color: #F8F8F2">DEVICE</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">bond0</span></span>
<span class="line"><span style="color: #F8F8F2">ONBOOT</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">yes</span></span>
<span class="line"><span style="color: #F8F8F2">BOOTPROTO</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">dhcp</span></span>
<span class="line"><span style="color: #F8F8F2">BONDING_OPTS</span><span style="color: #FF79C6">=</span><span style="color: #E9F284">&quot;</span><span style="color: #F1FA8C">mode=0 miimon=100</span><span style="color: #E9F284">&quot;</span></span>
<span class="line"></span></code></pre></div>



<p>Sonrasında, birleştirilecek ağ arayüzlerinin yapılandırmasını yapmalıyız:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="$ cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
MASTER=bond0
SLAVE=yes

$ cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
MASTER=bond0
SLAVE=yes
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">$ cat </span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">etc</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">sysconfig</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">network</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">scripts</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">ifcfg</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">eth0</span></span>
<span class="line"><span style="color: #F8F8F2">DEVICE</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">eth0</span></span>
<span class="line"><span style="color: #F8F8F2">ONBOOT</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">yes</span></span>
<span class="line"><span style="color: #F8F8F2">MASTER</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">bond0</span></span>
<span class="line"><span style="color: #F8F8F2">SLAVE</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">yes</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F8F8F2">$ cat </span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">etc</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">sysconfig</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">network</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">scripts</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">ifcfg</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">eth1</span></span>
<span class="line"><span style="color: #F8F8F2">DEVICE</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">eth1</span></span>
<span class="line"><span style="color: #F8F8F2">ONBOOT</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">yes</span></span>
<span class="line"><span style="color: #F8F8F2">MASTER</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">bond0</span></span>
<span class="line"><span style="color: #F8F8F2">SLAVE</span><span style="color: #FF79C6">=</span><span style="color: #F8F8F2">yes</span></span>
<span class="line"></span></code></pre></div>



<p>Ağ hizmetini yeniden başlatarak ayarları uygulayabiliriz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="$ sudo systemctl restart NetworkManager
$ sudo nmcli networking off &amp;&amp; sudo nmcli networking on
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">$ sudo systemctl restart NetworkManager</span></span>
<span class="line"><span style="color: #F8F8F2">$ sudo nmcli networking off </span><span style="color: #FF79C6">&amp;&amp;</span><span style="color: #F8F8F2"> sudo nmcli networking on</span></span>
<span class="line"></span></code></pre></div>



<h3 class="wp-block-heading" id="3-test-ve-do%C4%9Frulama">3. Test ve Doğrulama</h3>



<p>Bağlantı birleştirme yapılandırıldıktan sonra, ayarların doğru çalıştığından emin olmak için bazı testler yapmamız gerekir. Aşağıdaki komutlarla durumu kontrol edebiliriz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="$ ip add
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">$ ip add</span></span>
<span class="line"></span></code></pre></div>



<p>Bu komut, <code>bond0</code> adında birleştirilmiş bir arayüzün aktif olduğunu ve <code>eth0</code> ile <code>eth1</code> arayüzlerinin SLAVE durumunda olduğunu gösterecektir.</p>



<p>Ayrıca, <code>ethtool</code> ile birleştirilmiş arayüzün hızını kontrol edebiliriz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="$ ethtool bond0
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">$ ethtool bond0</span></span>
<span class="line"></span></code></pre></div>



<p>Bond arayüzünün hızı, birleştirilen Ethernet arayüzlerinin toplam kapasitesine eşit olmalıdır. Örneğin, iki adet 1Gbps Ethernet kartı kullanıyorsanız, hız 2000Mb/s olarak görünecektir.</p>



<p>Son olarak, <code>/proc/net/bonding/bond0</code> dosyasını kontrol ederek bağ durumunu detaylı inceleyebiliriz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="$ cat /proc/net/bonding/bond0
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">$ cat </span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">proc</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">net</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">bonding</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">bond0</span></span>
<span class="line"></span></code></pre></div>



<p>Bu dosya, her bir slave arayüzün durumu, hızları ve hata sayıları gibi önemli bilgiler içerecektir.</p>



<h4 class="wp-block-heading" id="31-%C3%B6rnek-test-sonu%C3%A7lar%C4%B1">3.1. Örnek Test Sonuçları</h4>



<p>Aşağıda, bir testin örnek çıktısı yer almaktadır:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="$ ip add
...
1: eth0: &lt;BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP&gt; mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
    link/ether 08:00:27:8c:c1:7c brd ff:ff:ff:ff:ff:ff
2: eth1: &lt;BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP&gt; mtu 1500 qdisc fq_codel master bond0 state UP group default qlen 1000
    link/ether 08:00:27:8c:c1:7c brd ff:ff:ff:ff:ff:ff
14: bond0: &lt;BROADCAST,MULTICAST,MASTER,UP,LOWER_UP&gt; mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 08:00:27:8c:c1:7c brd ff:ff:ff:ff:ff:ff
    inet 192.168.68.174/24 brd 192.168.68.255 scope global dynamic noprefixroute bond0
       valid_lft 5041sec preferred_lft 5041sec
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">$ ip add</span></span>
<span class="line"><span style="color: #FF79C6">...</span></span>
<span class="line"><span style="color: #BD93F9">1</span><span style="color: #F8F8F2">: eth0: </span><span style="color: #FF79C6">&lt;</span><span style="color: #F8F8F2">BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP</span><span style="color: #FF79C6">&gt;</span><span style="color: #F8F8F2"> mtu </span><span style="color: #BD93F9">1500</span><span style="color: #F8F8F2"> qdisc fq_codel master bond0 state UP group </span><span style="color: #FF79C6">default</span><span style="color: #F8F8F2"> qlen </span><span style="color: #BD93F9">1000</span></span>
<span class="line"><span style="color: #F8F8F2">    link</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">ether </span><span style="color: #BD93F9">08</span><span style="color: #F8F8F2">:</span><span style="color: #BD93F9">00</span><span style="color: #F8F8F2">:</span><span style="color: #BD93F9">27</span><span style="color: #F8F8F2">:8c:c1:7c brd ff:ff:ff:ff:ff:ff</span></span>
<span class="line"><span style="color: #BD93F9">2</span><span style="color: #F8F8F2">: eth1: </span><span style="color: #FF79C6">&lt;</span><span style="color: #F8F8F2">BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP</span><span style="color: #FF79C6">&gt;</span><span style="color: #F8F8F2"> mtu </span><span style="color: #BD93F9">1500</span><span style="color: #F8F8F2"> qdisc fq_codel master bond0 state UP group </span><span style="color: #FF79C6">default</span><span style="color: #F8F8F2"> qlen </span><span style="color: #BD93F9">1000</span></span>
<span class="line"><span style="color: #F8F8F2">    link</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">ether </span><span style="color: #BD93F9">08</span><span style="color: #F8F8F2">:</span><span style="color: #BD93F9">00</span><span style="color: #F8F8F2">:</span><span style="color: #BD93F9">27</span><span style="color: #F8F8F2">:8c:c1:7c brd ff:ff:ff:ff:ff:ff</span></span>
<span class="line"><span style="color: #BD93F9">14</span><span style="color: #F8F8F2">: bond0: </span><span style="color: #FF79C6">&lt;</span><span style="color: #F8F8F2">BROADCAST,MULTICAST,MASTER,UP,LOWER_UP</span><span style="color: #FF79C6">&gt;</span><span style="color: #F8F8F2"> mtu </span><span style="color: #BD93F9">1500</span><span style="color: #F8F8F2"> qdisc noqueue state UP group </span><span style="color: #FF79C6">default</span><span style="color: #F8F8F2"> qlen </span><span style="color: #BD93F9">1000</span></span>
<span class="line"><span style="color: #F8F8F2">    link</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">ether </span><span style="color: #BD93F9">08</span><span style="color: #F8F8F2">:</span><span style="color: #BD93F9">00</span><span style="color: #F8F8F2">:</span><span style="color: #BD93F9">27</span><span style="color: #F8F8F2">:8c:c1:7c brd ff:ff:ff:ff:ff:ff</span></span>
<span class="line"><span style="color: #F8F8F2">    inet </span><span style="color: #BD93F9">192.168</span><span style="color: #F8F8F2">.</span><span style="color: #BD93F9">68.174</span><span style="color: #FF79C6">/</span><span style="color: #BD93F9">24</span><span style="color: #F8F8F2"> brd </span><span style="color: #BD93F9">192.168</span><span style="color: #F8F8F2">.</span><span style="color: #BD93F9">68.255</span><span style="color: #F8F8F2"> scope global dynamic noprefixroute bond0</span></span>
<span class="line"><span style="color: #F8F8F2">       valid_lft 5041sec preferred_lft 5041sec</span></span>
<span class="line"></span></code></pre></div>



<p>Bu test sonucunda <code>bond0</code> arayüzünün başarılı bir şekilde çalıştığını ve her iki Ethernet kartının da slave olarak tanındığını görebiliyoruz.</p>



<hr class="wp-block-separator has-alpha-channel-opacity" />



<h3 class="wp-block-heading" id="4-sonu%C3%A7">4. Sonuç</h3>



<p>Bağlantı birleştirme, Linux&#8217;ta ağ performansını ve güvenilirliğini artırmak için güçlü bir özelliktir. Bu dokümanda, iki Ethernet kartını birleştirerek daha yüksek ağ kapasitesine ve hata toleransına sahip bir yapılandırmanın nasıl yapılacağını inceledik.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>iPerf Kullanarak Ağ Performansı ve Bant Genişliği Ölçümü</title>
		<link>https://cpynet.com.tr/iperf-kullanarak-ag-performansi-ve-bant-genisligi-olcumu/</link>
		
		<dc:creator><![CDATA[Emin Buyuk]]></dc:creator>
		<pubDate>Thu, 31 Oct 2024 10:00:22 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://cpynet-wordpress.wekeea.easypanel.host/iperf-kullanarak-ag-performansi-ve-bant-genisligi-olcumu/</guid>

					<description><![CDATA[Bu makalede, iPerf aracı ile ağ performansı ve bant genişliği testlerinin nasıl yapılacağını ayrıntılı olarak inceleyeceğiz. iPerf&#8217;in kurulumu,&#8230;]]></description>
										<content:encoded><![CDATA[
<p>Bu makalede, <strong>iPerf</strong> aracı ile ağ performansı ve bant genişliği testlerinin nasıl yapılacağını ayrıntılı olarak inceleyeceğiz. iPerf&#8217;in kurulumu, kullanımı, bant genişliği değerlerinin nasıl yorumlanacağı ve iPerf’in hangi durumlarda kullanılabileceği ile ilgili kapsamlı bilgiler sağlayacağız.</p>



<h2 class="wp-block-heading" id="iperf-nedir">iPerf Nedir?</h2>



<p><strong>iPerf</strong>, ağ performansını ölçmek için kullanılan bir test aracıdır. Özellikle:</p>



<ul class="wp-block-list">
<li><strong>TCP</strong> ve <strong>UDP</strong> protokollerini destekler.</li>



<li>Bant genişliği, gecikme, paket kaybı gibi ağ performans ölçümlerini yapar.</li>



<li>İstemci-sunucu modeli ile çalışır.</li>
</ul>



<p>iPerf, ağ altyapısının optimizasyonu, sorun tespiti ve kapasite planlaması gibi alanlarda sıklıkla tercih edilir.</p>



<h2 class="wp-block-heading" id="iperfin-kullan%C4%B1m-alanlar%C4%B1">iPerf&#8217;in Kullanım Alanları</h2>



<p>iPerf, birçok senaryoda kullanılır. Özellikle:</p>



<ul class="wp-block-list">
<li><strong>Ağ kapasitesi testleri</strong>: Maksimum bant genişliğini ölçmek için kullanılır.</li>



<li><strong>Paket kaybı ve gecikme tespiti</strong>: Ağ üzerindeki paket kayıplarını ve gecikmeleri test eder.</li>



<li><strong>TCP ve UDP testi</strong>: Farklı protokoller ile ağ performansını ölçer.</li>



<li><strong>Wi-Fi bağlantı testleri</strong>: Kablosuz ağlarda veri aktarım hızlarını test etmek için kullanılır.</li>



<li><strong>Veri merkezlerinde ağ performansını ölçme</strong>: Bir veri merkezindeki cihazlar arasında ağ performansını ölçerek ağ yapısını optimize eder.</li>
</ul>



<h2 class="wp-block-heading" id="iperfin-linux-%C3%BCzerinde-kurulumu">iPerf&#8217;in Linux Üzerinde Kurulumu</h2>



<p>iPerf&#8217;in kurulumu oldukça basittir. <strong>Debian/Ubuntu</strong> tabanlı dağıtımlar ile <strong>Red Hat/CentOS</strong> tabanlı dağıtımlar için ayrı ayrı kurulumu ele alacağız.</p>



<h3 class="wp-block-heading" id="1-debian-ve-ubuntu-tabanl%C4%B1-da%C4%9F%C4%B1t%C4%B1mlar-i%CC%87%C3%A7in-kurulum">1. Debian ve Ubuntu Tabanlı Dağıtımlar İçin Kurulum</h3>



<p>Debian ve Ubuntu gibi dağıtımlarda iPerf&#8217;i şu komut ile kolayca kurabilirsiniz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="sudo apt update
sudo apt install iperf3
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">sudo apt update</span></span>
<span class="line"><span style="color: #F8F8F2">sudo apt install iperf3</span></span>
<span class="line"></span></code></pre></div>



<p><strong>iPerf3</strong>, iPerf&#8217;in üçüncü sürümüdür ve iPerf2&#8217;ye kıyasla daha fazla özellik ve daha iyi performans sunar. İndirme işlemi tamamlandıktan sonra, kurulumun başarılı olduğunu kontrol etmek için versiyon bilgisi komutunu çalıştırın:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="iperf3 --version
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">iperf3 </span><span style="color: #FF79C6">--</span><span style="color: #F8F8F2">version</span></span>
<span class="line"></span></code></pre></div>



<h3 class="wp-block-heading" id="2-red-hat-centos-ve-fedora-tabanl%C4%B1-da%C4%9F%C4%B1t%C4%B1mlar-i%CC%87%C3%A7in-kurulum">2. Red Hat, CentOS ve Fedora Tabanlı Dağıtımlar İçin Kurulum</h3>



<p><strong>RHEL</strong> ve <strong>CentOS</strong> gibi dağıtımlarda iPerf kurulumu için <strong>EPEL</strong> (Extra Packages for Enterprise Linux) reposunu eklemelisiniz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="sudo yum install epel-release
sudo yum install iperf3
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">sudo yum install epel</span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">release</span></span>
<span class="line"><span style="color: #F8F8F2">sudo yum install iperf3</span></span>
<span class="line"></span></code></pre></div>



<p>Fedora kullanıyorsanız:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="sudo dnf install iperf3
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">sudo dnf install iperf3</span></span>
<span class="line"></span></code></pre></div>



<p>Kurulum tamamlandıktan sonra, versiyonu kontrol etmek için yine şu komutu kullanabilirsiniz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="iperf3 --version
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">iperf3 </span><span style="color: #FF79C6">--</span><span style="color: #F8F8F2">version</span></span>
<span class="line"></span></code></pre></div>



<h2 class="wp-block-heading" id="iperf-kullanarak-a%C4%9F-testi-yapma">iPerf Kullanarak Ağ Testi Yapma</h2>



<p>Kurulum tamamlandıktan sonra, ağ testi için <strong>sunucu</strong> ve <strong>istemci</strong> rolleriyle iPerf’i kullanabilirsiniz. iPerf her iki cihazda da yüklü olmalıdır.</p>



<h3 class="wp-block-heading" id="1-iperf-sunucusunu-ba%C5%9Flatma">1. iPerf Sunucusunu Başlatma</h3>



<p>Sunucuyu başlatmak için şu komutu çalıştırın:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="iperf3 -s
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">iperf3 </span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">s</span></span>
<span class="line"></span></code></pre></div>



<p>Bu komut, sunucuyu <strong>5001</strong> portunda dinlemeye başlar. Sunucuya gelecek bağlantıları kabul eder ve istemciden gelen veri akışını ölçer. Varsayılan olarak, sunucu <strong>TCP</strong> modunda çalışır.</p>



<p>Ayrıca, başka bir port üzerinden dinlemek isterseniz, şu şekilde belirleyebilirsiniz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="iperf3 -s -p 5201
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">iperf3 </span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">s </span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">p </span><span style="color: #BD93F9">5201</span></span>
<span class="line"></span></code></pre></div>



<p>UDP testi yapmak için ise şu komutu kullanabilirsiniz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="iperf3 -s -u
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">iperf3 </span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">s </span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">u</span></span>
<span class="line"></span></code></pre></div>



<h3 class="wp-block-heading" id="2-iperf-i%CC%87stemciyi-ba%C5%9Flatma">2. iPerf İstemciyi Başlatma</h3>



<p>İstemci tarafında, sunucuya bağlanarak test yapabilirsiniz. Örnek olarak, sunucunun IP adresine (5.61.11.61) bağlanarak bir test gerçekleştirelim:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="iperf3 -c 5.61.11.61
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">iperf3 </span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">c </span><span style="color: #BD93F9">5.61</span><span style="color: #F8F8F2">.</span><span style="color: #BD93F9">11.61</span></span>
<span class="line"></span></code></pre></div>



<p>Bu test sonucunda, istemci ile sunucu arasındaki bağlantının bant genişliği, gecikmesi gibi bilgiler ekrana gelir. Aşağıdaki gibi bir sonuç alabilirsiniz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="Connecting to host 5.61.11.61, port 5201
[  4] local 192.168.1.10 port 52084 connected to 5.61.11.61 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-10.00 sec   1.10 GBytes  944 Mbits/sec    0   245 KBytes
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">Connecting to host </span><span style="color: #BD93F9">5.61</span><span style="color: #F8F8F2">.</span><span style="color: #BD93F9">11.61</span><span style="color: #F8F8F2">, port </span><span style="color: #BD93F9">5201</span></span>
<span class="line"><span style="color: #F8F8F2">[  </span><span style="color: #BD93F9">4</span><span style="color: #F8F8F2">] local </span><span style="color: #BD93F9">192.168</span><span style="color: #F8F8F2">.</span><span style="color: #BD93F9">1.10</span><span style="color: #F8F8F2"> port </span><span style="color: #BD93F9">52084</span><span style="color: #F8F8F2"> connected to </span><span style="color: #BD93F9">5.61</span><span style="color: #F8F8F2">.</span><span style="color: #BD93F9">11.61</span><span style="color: #F8F8F2"> port </span><span style="color: #BD93F9">5201</span></span>
<span class="line"><span style="color: #F8F8F2">[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd</span></span>
<span class="line"><span style="color: #F8F8F2">[  </span><span style="color: #BD93F9">4</span><span style="color: #F8F8F2">]   </span><span style="color: #BD93F9">0.00</span><span style="color: #FF79C6">-</span><span style="color: #BD93F9">10.00</span><span style="color: #F8F8F2"> sec   </span><span style="color: #BD93F9">1.10</span><span style="color: #F8F8F2"> GBytes  </span><span style="color: #BD93F9">944</span><span style="color: #F8F8F2"> Mbits</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">sec    </span><span style="color: #BD93F9">0</span><span style="color: #F8F8F2">   </span><span style="color: #BD93F9">245</span><span style="color: #F8F8F2"> KBytes</span></span>
<span class="line"></span></code></pre></div>



<p>Bu sonuçlarda:</p>



<ul class="wp-block-list">
<li><strong>944 Mbits/sec</strong>: Bağlantının ortalama bant genişliği.</li>



<li><strong>Retr</strong>: TCP tekrar gönderme sayısı.</li>



<li><strong>Cwnd</strong>: TCP pencere boyutu.</li>
</ul>



<h3 class="wp-block-heading" id="3-udp-kullanarak-test-yapma">3. UDP Kullanarak Test Yapma</h3>



<p>Eğer <strong>UDP</strong> protokolü üzerinden test yapmak isterseniz, şu komutu kullanabilirsiniz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="iperf3 -c 5.61.11.61 -u -b 500M
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">iperf3 </span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">c </span><span style="color: #BD93F9">5.61</span><span style="color: #F8F8F2">.</span><span style="color: #BD93F9">11.61</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">u </span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">b 500M</span></span>
<span class="line"></span></code></pre></div>



<p>Bu komut, UDP üzerinden saniyede 500 Mbit veri göndermeye çalışacaktır. UDP protokolünde veri kaybı (loss) ve gecikme (latency) gibi bilgiler de raporlanır.</p>



<h3 class="wp-block-heading" id="bant-geni%C5%9Fli%C4%9Fi-de%C4%9Ferleri-ne-beklemeliyiz">Bant Genişliği Değerleri: Ne Beklemeliyiz?</h3>



<p>Bant genişliği testlerinde elde edilen değerler, ağ bağlantısının teorik maksimum kapasitesine yakın olmalıdır. Bu değerler, farklı ağ hızlarına göre şu şekilde yorumlanabilir:</p>



<h4 class="wp-block-heading" id="1-gbps-gigabit-a%C4%9F-ba%C4%9Flant%C4%B1s%C4%B1">1 Gbps (Gigabit) Ağ Bağlantısı</h4>



<ul class="wp-block-list">
<li>Teorik maksimum bant genişliği: <strong>1000 Mbit/s</strong></li>



<li>iPerf testinde görebileceğiniz değer: <strong>900 &#8211; 950 Mbit/s</strong></li>
</ul>



<p>Gigabit bağlantılarında, ağ donanımının kalitesine ve veri yolundaki tıkanıklıklara bağlı olarak tam 1000 Mbit/s değerine ulaşmak zor olabilir. Ancak 900 Mbit/s ve üzeri sonuçlar, oldukça iyi bir bağlantı kalitesini gösterir.</p>



<h4 class="wp-block-heading" id="100-mbits-a%C4%9F-ba%C4%9Flant%C4%B1s%C4%B1">100 Mbit/s Ağ Bağlantısı</h4>



<ul class="wp-block-list">
<li>Teorik maksimum bant genişliği: <strong>100 Mbit/s</strong></li>



<li>iPerf testinde görebileceğiniz değer: <strong>80 &#8211; 95 Mbit/s</strong></li>
</ul>



<p>100 Mbit/s bağlantılarda, cihazların performansına bağlı olarak yaklaşık %90 &#8211; %95 oranında bir kapasite kullanımı normaldir.</p>



<h4 class="wp-block-heading" id="wi-fi-ba%C4%9Flant%C4%B1lar%C4%B1">Wi-Fi Bağlantıları</h4>



<p>Wi-Fi bağlantılarında, fiziksel ortam, mesafe, sinyal gücü ve ağdaki diğer cihazlar bant genişliğini ciddi şekilde etkileyebilir. Örneğin, teorik olarak 300 Mbit/s hız sunan bir Wi-Fi ağı üzerinde iPerf testi yapıldığında, çoğunlukla 150 Mbit/s civarında sonuçlar elde edilebilir.</p>



<h3 class="wp-block-heading" id="%C3%B6rnek-iperf-komutlar%C4%B1-ile-%C3%A7%C4%B1kt%C4%B1lar">Örnek iPerf Komutları ile Çıktılar</h3>



<h4 class="wp-block-heading" id="tcp-testi-varsay%C4%B1lan">TCP Testi (Varsayılan)</h4>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="iperf3 -c 5.61.11.61
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">iperf3 </span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">c </span><span style="color: #BD93F9">5.61</span><span style="color: #F8F8F2">.</span><span style="color: #BD93F9">11.61</span></span>
<span class="line"></span></code></pre></div>



<p>Çıktı örneği:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="[  4]   0.00-10.00 sec   1.10 GBytes  944 Mbits/sec
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">[  </span><span style="color: #BD93F9">4</span><span style="color: #F8F8F2">]   </span><span style="color: #BD93F9">0.00</span><span style="color: #FF79C6">-</span><span style="color: #BD93F9">10.00</span><span style="color: #F8F8F2"> sec   </span><span style="color: #BD93F9">1.10</span><span style="color: #F8F8F2"> GBytes  </span><span style="color: #BD93F9">944</span><span style="color: #F8F8F2"> Mbits</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">sec</span></span>
<span class="line"></span></code></pre></div>



<h4 class="wp-block-heading" id="udp-testi-500-mbits-hedef">UDP Testi (500 Mbit/s Hedef)</h4>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="iperf3 -c 5.61.11.61 -u -b 500M
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">iperf3 </span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">c </span><span style="color: #BD93F9">5.61</span><span style="color: #F8F8F2">.</span><span style="color: #BD93F9">11.61</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">u </span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">b 500M</span></span>
<span class="line"></span></code></pre></div>



<p>Çıktı örneği:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="[  4]   0.00-10.00 sec   596 MBytes  500 Mbits/sec  0.10% loss
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">[  </span><span style="color: #BD93F9">4</span><span style="color: #F8F8F2">]   </span><span style="color: #BD93F9">0.00</span><span style="color: #FF79C6">-</span><span style="color: #BD93F9">10.00</span><span style="color: #F8F8F2"> sec   </span><span style="color: #BD93F9">596</span><span style="color: #F8F8F2"> MBytes  </span><span style="color: #BD93F9">500</span><span style="color: #F8F8F2"> Mbits</span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">sec  </span><span style="color: #BD93F9">0.10</span><span style="color: #FF79C6">%</span><span style="color: #F8F8F2"> loss</span></span>
<span class="line"></span></code></pre></div>



<h2 class="wp-block-heading" id="iperf-ile-i%CC%87leri-d%C3%BCzey-kullan%C4%B1m">iPerf ile İleri Düzey Kullanım</h2>



<p>iPerf&#8217;in daha gelişmiş özellikleri ile testlerinizi özelleştirebilirsiniz.</p>



<h3 class="wp-block-heading" id="1-paralel-ak%C4%B1%C5%9Flar-ile-test">1. Paralel Akışlar ile Test</h3>



<p>Ağ kapasitesini daha iyi ölçmek için paralel veri akışlarını test edebilirsiniz. Bu, özellikle çoklu cihazların aynı anda ağı nasıl kullandığını simüle eder. <strong>-P</strong> parametresi ile paralel akış sayısını belirleyebilirsiniz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="iperf3 -c 5.61.11.61 -P 5
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">iperf3 </span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">c </span><span style="color: #BD93F9">5.61</span><span style="color: #F8F8F2">.</span><span style="color: #BD93F9">11.61</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">P </span><span style="color: #BD93F9">5</span></span>
<span class="line"></span></code></pre></div>



<p>Bu komut ile 5 paralel akış üzerinden ağ performansı ölçülür.</p>



<h3 class="wp-block-heading" id="2-farkl%C4%B1-paket-boyutlar%C4%B1-ile-test">2. Farklı Paket Boyutları ile Test</h3>



<p>UDP testi yaparken paket boyutunu değiştirebilirsiniz. <strong>-l</strong> parametresi ile paket boyutunu belirtin. Örneğin, 512 byte paket boyutunda UDP testi yapmak için:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="iperf3 -c 5.61.11.61 -u -b 500M -l 512
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">iperf3 </span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">c </span><span style="color: #BD93F9">5.61</span><span style="color: #F8F8F2">.</span><span style="color: #BD93F9">11.61</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">u </span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">b 500M </span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">l </span><span style="color: #BD93F9">512</span></span>
<span class="line"></span></code></pre></div>



<h3 class="wp-block-heading" id="3-test-s%C3%BCresini-belirleme">3. Test Süresini Belirleme</h3>



<p>iPerf testleri varsayılan olarak 10 saniye sürer. Bu süreyi <strong>-t</strong> parametresi ile değiştirebilirsiniz. Örneğin, testi 60 saniye boyunca yapmak için:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="iperf3 -c 5.61.11.61 -t 60
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">iperf3 </span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">c </span><span style="color: #BD93F9">5.61</span><span style="color: #F8F8F2">.</span><span style="color: #BD93F9">11.61</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">t </span><span style="color: #BD93F9">60</span></span>
<span class="line"></span></code></pre></div>



<h3 class="wp-block-heading" id="4-iperf-sunucusunu-arka-planda-%C3%A7al%C4%B1%C5%9Ft%C4%B1rma">4. iPerf Sunucusunu Arka Planda Çalıştırma</h3>



<p>Sunucu tarafını arka planda çalıştırmak istiyorsanız, şu komutu kullanabilirsiniz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2"><span style="padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"></span><span role="button" data-code="iperf3 -s &gt; /dev/null 2&gt;&amp;1 &amp;
" style="color:#F8F8F2" aria-label="Copy" class="code-block-pro-copy-button"></span><pre class="shiki dracula" style="background-color: #282A36"><code><span class="line"><span style="color: #F8F8F2">iperf3 </span><span style="color: #FF79C6">-</span><span style="color: #F8F8F2">s </span><span style="color: #FF79C6">&gt;</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">/</span><span style="color: #F8F8F2">dev</span><span style="color: #FF79C6">/</span><span style="color: #BD93F9">null</span><span style="color: #F8F8F2"> </span><span style="color: #BD93F9">2</span><span style="color: #FF79C6">&gt;&amp;</span><span style="color: #BD93F9">1</span><span style="color: #F8F8F2"> </span><span style="color: #FF79C6">&amp;</span></span>
<span class="line"></span></code></pre></div>



<p>Bu komut sunucuyu arka planda başlatır ve çıktıların ekranda gözükmesini engeller.</p>



<h2 class="wp-block-heading" id="sonu%C3%A7">Sonuç</h2>



<p>iPerf, ağ performansını ölçmek ve bant genişliği testleri yapmak için güçlü ve esnek bir araçtır. TCP ve UDP testleri ile ağ altyapınızın kapasitesini, veri aktarım hızlarını ve gecikme oranlarını tespit edebilirsiniz. Bu rehberde iPerf’in nasıl kurulacağını, kullanılacağını ve gelişmiş test senaryolarını inceledik.</p>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Username is not in the sudoers file. This incident will be reported. Hatası Çözümü</title>
		<link>https://cpynet.com.tr/username-is-not-in-the-sudoers-file-this-incident-will-be-reported-hatasi-cozumu/</link>
		
		<dc:creator><![CDATA[Emin Buyuk]]></dc:creator>
		<pubDate>Thu, 31 Oct 2024 07:00:28 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://cpynet-wordpress.wekeea.easypanel.host/username-is-not-in-the-sudoers-file-this-incident-will-be-reported-hatasi-cozumu/</guid>

					<description><![CDATA[Linux&#8217;ta bazı komutlar yalnızca root kullanıcısı tarafından çalıştırılabilir. Varsayılan olarak, bu süper kullanıcı, sistemdeki tüm komutlara ve kaynaklara&#8230;]]></description>
										<content:encoded><![CDATA[
<p>Linux&#8217;ta bazı komutlar yalnızca root kullanıcısı tarafından çalıştırılabilir. Varsayılan olarak, bu süper kullanıcı, sistemdeki tüm komutlara ve kaynaklara erişime sahiptir. Ancak, hassas görevleri herhangi bir kısıtlama olmadan gerçekleştirmek tehlikelidir. Örneğin, kasıtlı veya kazara yapılan bir hata, tüm sistemi bozabilir. Bu nedenle, Linux <code>sudo</code> kullanımını teşvik eder. Bu komut, normal bir kullanıcıya, idari görevleri yürütmek için gerekli olan süper kullanıcı ayrıcalıklarını sağlar. <code>sudo</code> ile çalışırken, şu hatayla karşılaşabilirsiniz:</p>



<p><strong>‘cpynet is not in the sudoers file. This incident will be reported.’</strong></p>



<p>Bu belgede, bu hatayı düzeltmek için kullanılan farklı yaklaşımları tartışacağız.</p>



<h3 class="wp-block-heading" id="2-hatan%C4%B1n-nedenleri">2. Hatanın Nedenleri</h3>



<p>Bazen bu hatayı düzeltmemize gerek yoktur, örneğin sistem yöneticisi erişimimizi kasıtlı olarak bir güvenlik önlemi olarak kısıtlamışsa. Bu kısıtlama, şu anda karşılaştığımız soruna neden olur. Bu durumda, yöneticinin bizim için tanımladığı izinlerle çalışmak zorundayız.</p>



<p>Diğer taraftan, eğer sistem üzerinde gerçek bir kontrolümüz varsa, bu durumu düzeltebiliriz.</p>



<h4 class="wp-block-heading" id="hatan%C4%B1n-%C3%BCretilmesi">Hatanın Üretilmesi</h4>



<p>Bu hatayı görmek için aşağıdaki komutu çalıştırabilirsiniz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ sudo ls
[sudo] password for cpynet: 
cpynet is not in the sudoers file.  This incident will be reported.
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">sudo</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">ls</span></span>
<span class="line"><span style="color: #F8F8F2">[sudo] password </span><span style="color: #FF79C6">for</span><span style="color: #F8F8F2"> cpynet: </span></span>
<span class="line"><span style="color: #50FA7B">cpynet</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">is</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">not</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">in</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">the</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">sudoers</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">file.</span><span style="color: #F8F8F2">  </span><span style="color: #F1FA8C">This</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">incident</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">will</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">be</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">reported.</span></span>
<span class="line"></span></code></pre></div>



<p>Yukarıdaki mesaj ‘cpynet is not in the sudoers file’ sadece <code>cpynet</code> kullanıcısının sudoers dosyasında bulunmadığını belirtir. Bu dosya, sudo ile ilgili görevler için hem kullanıcı hem de kullanıcı grubu ayrıcalıklarını tanımlar. Ayrıca, ‘This incident will be reported’ ifadesi, Linux&#8217;un bu başarısız sudo işleminin bir raporunu oluşturduğunu, bu olay sırasında neler olduğunu kaydettiğini belirtir.</p>



<h3 class="wp-block-heading" id="3-kullan%C4%B1c%C4%B1-ad%C4%B1n%C4%B1-sudoers-dosyas%C4%B1na-ekleme">3. Kullanıcı Adını Sudoers Dosyasına Ekleme</h3>



<p>Buradaki ana hedefimiz, kullanıcıyı doğrudan sudoers dosyasına eklemektir. Bunun için, <code>cpynet</code> kullanıcısı idari görevleri yerine getiremeyeceğinden root kullanıcısına geçmemiz gerekecek:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ su root
Password: 
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">su</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">root</span></span>
<span class="line"><span style="color: #50FA7B">Password:</span><span style="color: #F8F8F2"> </span></span>
<span class="line"></span></code></pre></div>



<p>Geçiş yaptıktan sonra, <code>nano</code> adlı bir metin düzenleyicisini kullanarak sudoers dosyasını düzenleyeceğiz. Nano, komut satırından dosyaları düzenlememize olanak tanır:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="# nano /etc/sudoers
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #6272A4"># nano /etc/sudoers</span></span>
<span class="line"></span></code></pre></div>



<p>Artık sudoers dosyası düzenlemeye hazır.</p>



<p>Kullanıcı ayrıcalıkları tanımlamasının altında bir satır ekleyelim. Bu satır, sistem kullanıcısına belirtilen süper kullanıcı ayrıcalıklarını vermek içindir:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="# User privilege specification
root	ALL=(ALL:ALL) ALL
cpynet  ALL=(ALL:ALL) ALL
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #6272A4"># User privilege specification</span></span>
<span class="line"><span style="color: #50FA7B">root</span><span style="color: #F8F8F2">	</span><span style="color: #F1FA8C">ALL=</span><span style="color: #F8F8F2">(</span><span style="color: #F1FA8C">ALL:ALL</span><span style="color: #F8F8F2">) ALL</span></span>
<span class="line"><span style="color: #50FA7B">cpynet</span><span style="color: #F8F8F2">  </span><span style="color: #F1FA8C">ALL=</span><span style="color: #F8F8F2">(</span><span style="color: #F1FA8C">ALL:ALL</span><span style="color: #F8F8F2">) ALL</span></span>
<span class="line"></span></code></pre></div>



<p>Artık <code>cpynet</code> kullanıcı erişim gerektiren görevleri yerine getirebilir. Değişikliği yaptıktan kısa bir süre sonra, bu değişiklikleri kaydetmemiz ve metin düzenleyicisinden çıkmamız gerekir. Bunu yapmak için, CTRL+X tuşlarına basarak çıkabilir, Y tuşuna basarak kaydedebilir ve Enter tuşuna basarak onaylayabilirsiniz. Son olarak, root oturumundan çıkabiliriz.</p>



<h3 class="wp-block-heading" id="4-kullan%C4%B1c%C4%B1-ad%C4%B1n%C4%B1-sudo-grubuna-ekleme">4. Kullanıcı Adını Sudo Grubuna Ekleme</h3>



<p>Yukarıdaki çözüme benzer şekilde, önce root kullanıcısına geçmek önemlidir:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="$ su root
Password: 
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #50FA7B">$</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">su</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">root</span></span>
<span class="line"><span style="color: #50FA7B">Password:</span><span style="color: #F8F8F2"> </span></span>
<span class="line"></span></code></pre></div>



<p><code>su</code> komutu, başka bir kullanıcının, bu durumda root&#8217;un izinleriyle görevleri yerine getirmemize olanak tanır.</p>



<p>Sonraki adımda, sudoers dosyasının içeriğini göstereceğiz. Kullanıcıların ve kullanıcı gruplarının ayrıcalıklarını belirten satırlara odaklanacağız:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="# cat /etc/sudoers
...

# User privilege specification
root	ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo	ALL=(ALL:ALL) ALL
...
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #6272A4"># cat /etc/sudoers</span></span>
<span class="line"><span style="color: #8BE9FD">...</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># User privilege specification</span></span>
<span class="line"><span style="color: #50FA7B">root</span><span style="color: #F8F8F2">	</span><span style="color: #F1FA8C">ALL=</span><span style="color: #F8F8F2">(</span><span style="color: #F1FA8C">ALL:ALL</span><span style="color: #F8F8F2">) ALL</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Members of the admin group may gain root privileges</span></span>
<span class="line"><span style="color: #50FA7B">%admin</span><span style="color: #F8F8F2"> </span><span style="color: #F1FA8C">ALL=</span><span style="color: #F8F8F2">(</span><span style="color: #F1FA8C">ALL</span><span style="color: #F8F8F2">) ALL</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6272A4"># Allow members of group sudo to execute any command</span></span>
<span class="line"><span style="color: #50FA7B">%sudo</span><span style="color: #F8F8F2">	</span><span style="color: #F1FA8C">ALL=</span><span style="color: #F8F8F2">(</span><span style="color: #F1FA8C">ALL:ALL</span><span style="color: #F8F8F2">) ALL</span></span>
<span class="line"><span style="color: #8BE9FD">...</span></span>
<span class="line"></span></code></pre></div>



<p>Yukarıda gösterildiği gibi, root kullanıcısı ve admin ve sudo grubu üyeleri süper kullanıcı ayrıcalıklarına sahiptir. Debian tabanlı bir dağıtımda olduğumuz için sudo grubu mevcuttur. Red Hat tabanlı bir Linux dağıtımında ise, wheel kullanıcı grubuyla karşılaşırız. Bu, Red Hat tabanlı dağıtımlar için sudo kullanıcı grubunun karşılığıdır.</p>



<p>Artık Debian&#8217;da çalıştığımıza göre, kullanıcıyı sudo grubuna ekleyelim:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="# usermod -aG sudo cpynet
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #6272A4"># usermod -aG sudo cpynet</span></span>
<span class="line"></span></code></pre></div>



<p>Burada, <code>usermod</code> komutu kullanıcının niteliklerini değiştirmemizi sağlar. Özellikle, <code>-G</code> seçeneğini kullanarak <code>cpynet</code> kullanıcısının grup bilgilerini güncelleyebileceğimizi belirtiyoruz. Ayrıca, <code>-a</code> seçeneği, bu kullanıcının ilişkili diğer gruplarının sürecin bir parçası olarak silinmediğinden emin olur. Sonuç olarak, <code>cpynet</code> artık <code>sudo</code> ile idari görevleri yerine getirebilir. Red Hat dağıtımlarında, sudo yerine wheel yazarak benzer sonuçlar elde edebiliriz.</p>



<p>İşlemi tamamladıktan sonra, root kullanıcı oturumundan çıkabiliriz:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="# exit
exit
" style="color:#F8F8F2;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #6272A4"># exit</span></span>
<span class="line"><span style="color: #8BE9FD">exit</span></span>
<span class="line"></span></code></pre></div>



<p>Artık önceki kullanıcı oturumumuza geri döndük.</p>



<h3 class="wp-block-heading" id="5-sonu%C3%A7">5. Sonuç</h3>



<p>Bu belgede, Linux hatası ‘cpynet is not in the sudoers file. This incident will be reported.’ ifadesinin anlamını kısaca açıkladık. Ardından bu durumu çözmek için iki uygulanabilir çözümü gösterdik.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
