Cron Job İle MySQL Restart

Cron Job İle MySQL Restart

  • 3,856 Kez Okundu
  • PHP & MySQL
  • 1 Yorum
  • 2018-11-29 10:31:38

Bazen sunucunuz garip davranır ve herhangi bir sorun nedeniyle bazı hizmetleri durdurur. Öenmli hizmetlerden birisi de MYSQL dir ve hizmetin durduğunu varsayalım. Bu yüzden, MySQL hizmetini kontrol edip otomatik başlatmaya çalışalım. Bunu her dakika kontrol etmek için Cron Job ile planlayalım.

NOT: Sunucunuza ssh erişiminiz olmalıdır. 
 

 

  1. Shell Scripti Oluşturalım 
  • Adım 1: Terminali açın ve sunucunuza ssh ile root olarak giriş yapın.
  • Adım 2: Shell dosyasını oluşturalım.
  • # cd ~
    # nano mysqlrestartjob.sh 

    Burada root dizininde scripti oluşturmamızı sağlamış olduk. İsmini değiştirebilirsiniz.

  • Adım 3 : MySQL kontrol etmek ve yeniden başlatmak için komut dosyasını yazalım ve bir e-posta uyarısı gönderelim.

  • 				#!/bin/bash
    				PATH=/usr/sbin:/usr/bin:/sbin:/bin
    				echo "MySQL Cron Job"
    				if [[ ! "$(/usr/sbin/service mysql status)" =~ "start/running" ]]
    				then
    					echo "MySQL Servisi Yeniden Başlatıldı." | mail -s "Auto MySQL Restart Job" [email protected]
    					service mysql start
    				else
    					echo "MySQL Servisi Sorunsuz Çalışıyor..."
    				fi

    E-posta Konusu ve e-posta adresini değiştirdiğinizden emin olun.

  • Adım 4: Komut dosyası ile işiniz bittiğinde CTRL + x tuşlarına basın ve değişiklikleri kaydetmeniz istenecektir. Y yazın ve enter tuşuna basın. Terminale dönecektir ve root dizininde mysqlrestartjob.sh dosyası oluşturulacaktır.

  • Adım 5 : Dosyamız için yürütülebilir izinlerini verelim.

  • # chmod +x mysqlrestartjob.sh 
  • Ek Bilgi : Sunucunuzda mail komutu çalışmayabilir bu yüzden isterseniz terminale aşağıdaki komutu girerek kurulumunu yapınız , isterseniz mail komutunu kaldırınız.
  • # apt-get install mailutils

     

  1. Test Zamanı...

Şimdi Scriptimiz hazır, çalışmasını test edelim.

        Terminalde aşağıdaki komutları girin:

# /usr/sbin/service mysql status


        Terminal böyle bir şey yazdıracaktır: 

● mysqld.service - LSB: start and stop MySQL
				   Loaded: loaded (/etc/init.d/mysqld; bad; vendor preset: enabled)
				   Active: active (running) since Wed 2018-11-28 10:05:46 EST; 17h ago
					 Docs: man:systemd-sysv-generator(8)
				   CGroup: /system.slice/mysqld.service
				   ├─ 994 /bin/sh /usr/local/apps/mysql/bin/mysqld_safe --defaul
				   └─1192 /usr/local/apps/mysql/bin/mysqld --defaults-file=/usr/

 

Terminalde aşağıdaki komutları girin:

# /usr/sbin/service mysql stop

Bu komut ile MYSQL hizmetini durdurmuş olduk, Şimdi ise hazırladığımız scripti çalıştıralım.

  Terminalde aşağıdaki komutları girin:

# ~/mysqlrestartjob.sh

Bu, hizmeti kontrol etmek ve yeniden başlatmak için oluşturduğumuz komut dosyasını çalıştıracaktır. Konuyla birlikte bir e-posta almalı ve komut dosyasında belirttiğiniz e-posta adresine mesaj göndermiş olmalıdır.

Servis durumunu tekrar görüntüleyelim. "Active: active (running)" şeklinde çıktı almanız lazım.
  Terminalde aşağıdaki komutları girin:        

# /usr/sbin/service mysql status

Bu adımda her şey yolunda giderse, Scriptimizi her dakika çalıştırmak için cron job oluşturalım.

  1. Cron Job Oluştur
  • Adım 1: Cron Job Kurma

Sunucunuza root olarak ssh ile giriş yaptığınızdan emin olun, sonra terminalde aşağıdaki komutu yazın:

# crontab -e
				

Crontab ekranını gördüğünüzde, bu dosyanın sonunda aşağıdaki satırı yazın:

## */1 * * * * /root/mysqlrestartjob.sh

CTRL + x tuşlarına basın ve değişiklikleri kaydetmeniz istenecektir, Y düğmesine basın ve enter tuşuna basın. 

Şimdi bizim cron job kuruldu.

  • Adım 2 : Test Zamanı..

Hazırladığımız Cron Job un sorunsuz çalışıp çalışmadığını test edelim.
    
        Terminalde aşağıdaki komutları girin:

# /usr/sbin/service mysql stop

 

Bu, sunucunuzda MySQL hizmetini durduracaktır. Şimdi bir dakika beklemeli ve mysqlrestartjob.sh dosyasında belirttiğimiz konu ve mesajla bir e-posta alıyor olmadığımızı görelim.

Evet Sonuç Başarılı...

Umarım faydalı bulursunuz.

Sevgiyle ve Bilgiyle Kalın...

bars
@bars demiş ki ;

çok makbule geçti, teşekkürler

YORUM YAPMAK İSTER MİSİN?

    Sponsor Reklamlar
    Son Yorumlar
    Etiket Bulutu
    C#PopupFormOtomatikProgramBaşlatmaBaşlangıçBasitEkran Koruyucuc#ekran görüntüsümail göndermeexedllbirleştirmekIL MergePhpMSSQL BAĞLANTIGerçekIPRealTextBinaryConvertÇalışmaSüreHesaplamakBulmakCssjQueryHtmlScroll TopYukarı ÇıkOnMinimizeControlBoxSimge DurumunaKüçültInternetGetConnectedStateİnternetBağlantıKontrolŞifre MatikPassword GeneratorHash ŞifrelemeMD5SHA1SHA256SHA384SHA512Asimetrik ŞifrelemeRSASimetrik ŞifrelemeKriptoŞifrelemeAlgoritmaDESRC2RijndaelTripleDESKeyLogKlavye DinleTuş YakalamaGlobal HookDialogResultÇıkış MesajıUyarı MesajıFormClosingMySQLConnector/NetKullanımSoruCheckBoxListViewÇoklu SilmebiosdramexploitkontrolgüvenlikinteljavascriptrowhammerscriptPHPAdmin PanelResponsiveXtbadminFreeÜcretsizWifiWirelessKeysŞifreAnahtarPasswordKablosuz AğDepolamaŞifreler NeredeKablosuz ŞifreAndroidTelefonNasılYazılırProgramlama DiliHesap MakinesiSEONedirNasıl YapılırAnalizGoogleLinkÖzgünMobilKonuResim Robots.txtSite MapŞifreli GirişŞifreli FormŞifre KoymaŞifreli AçılışCompilingDebuggingDerlemeKarma ModMixed ModeApp.ConfigKurbanBayramMübarek OlsunBlogScriptYonetimAdminPanelText EditorMSHTMLEditorYazıDüzenleyiciEasyAppKolayUygulamaÇalıştırmaAkıllı TelefonKlavyeiOSKeyboardEl YazısıCalculatorMyScriptHand WritingDosya YöneticisiFile ExplorerFTPBluetoothRootTask ManagerGörev YöneticisiSystemTargetWeb Application PentestErrorShowHideHataGösterGizlePDOSelectInsertUpdateDeleteConnectSeçimEklemeSilmeGüncellemeMsSQLVeritabanıÇeviriçiDatabaseConverterDbConvertMaskeli IPGerçek IPTarayıcı Tespitİşletim Sistemi TespitTekil Ziyaretçi BilgileriAktif Ziyaretçi BilgileriZiyaretçi SayacıVirüsTemizlemeFirewallServiceSecurityServiceTimeServicePentestGüvenliksızma TestiuniscanwindowslinuxperlDosyaKlasörListelemekFileFolderListInternetDownloadUploadSpeedMonitorServisMsconfigStartupRunServiceIOSMatematikDenklemÇözümKameraKablosuzinternetHotspotPaylaşımAyarlarKaliLinuxSharedTerminalÖsymDuyuruTimeTimeZoneDateZamanTarihdate()time()FreelancerSerbestÇalışanJobsİşlerWebSiteVersionSürümGeçişUbuntuSunucuApachephpinfo()phpversion()FonksiyonHerseyiKopyalacopyallcopySızma TestiSQLMapWindowsPython810HotSpotWi-FiWlannetshhostednetworkAutoWlanJsGeri SayımTextAreaOtomatik KayıtSayacSaniyeCountDownXtbadminV2AjaxJavaScriptNumaraFormatPhoneNumberFormatTelefonNumarasıDebuggerDetectUnpackerDisassemblerSecurityReverseEngineeringAlgorithmMacDKHOSCTFCapture The FlagForensicTriviaIntelligenceCRC32CRYPTPASSWORD_HASHWin10StoreMağazaMicrosoftReInstallWSLPowerShellPOSTCyberSiberAdli BilişimHackerUSBCDLiveToolsBruterNmapMSSQL ServerMS SQL ExpressMS AccessOracleIBM DB2SybaseInterbaseInformixExceldBase DbfVisual FoxProMySQLConnectionŞifreleri BulCMDLaZagneEthernetTuxCutNetCutNetKillPerformansCronTabCronJobRestartStopStartBashShellWireSharkFlagUSOMBTKBase64QRÇözümlerWriteUpWrite-UpFinalReconOSINTToolScannerWebsiteSiber GüvenlikPhishingVPNWannacryMobileDeviceFunctionMobil AlgılaMobil TespitisMobilephp mobilJavascriptYazı EfektKayan YazıText EffectsearchBoxinputclassplaceholdersetIntervalsetTimeoutJSpreventBackwindowpushStatehistoryonloadblock browser back buttonVPN Nediranonimtorucuz ürünucuzurunum.commarket kıyaslaürün kıyaslakıyaslakarşılaştıra101şokhappy centermigroscarrefoursabizim marketkıyasürün fiyatıfiyat kıyaslaucuz fiyatfiyat sorVideoEmbedPlayerVideoIDgetVideoIDIframeCreditCardCard DetectKart AlgılaKart TespitKredi Kartı TespitVisaMastercardAIOpenAIChatGPTYapay Zekaquickchatkrispbeatovencleanvoicepodcastleflairillustrokepatternedstockimgcopymonkeyocoyaunbouncevidyotrymaverickquickchatpuzzlelabssounddrawcleanupresumewordedlookatheresanaiforthatsynthesiadescriptotterinkforall