Skip to content

wget ile google drive dan büyük boyutlu dosya indirmek

google drive özellike büyük boyutlu dosya indirecekseniz bu bazen sorun olabiliyor. öncelikle google drivedaki paylaşımı açılmış dosya bağlantısını alın.

https://drive.google.com/file/d/DRIVE_DOSYA_ID/view?usp=sharing

buradaki DRIVE_DOSYA_ID yazan alanı aşagıdaki komutta ile değiştirin ve dosya adı vermeyide unutmayın.. kod çok temiz ama çalışmaktadır.

wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=DRIVE_DOSYA_ID' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=DRIVE_DOSYA_ID" -O DOSYA_ADI && rm -rf /tmp/cookies.txt

wordpress kalıcı bağlantılar sorunu

seo uyumu için wordpress de kalıcı bağlantılar altında değişikli yaptınız ve siteniz linkleri doğru olarak çalışmıyorsa temelde kontrol etmeniz gereken bir kaç nokta var. ubuntu + apache kullanıdığı varsılarak kontrol edilmesi gerekenlerden ilki ve temel sorunu sitenize ait .htaccess dosyası ve içeriğinin kontrolüdür.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

kalıcı bağlantılar altında değişik yaptığınız dosya sistemi izinleri doğru şekilde yapılandırıldıysa wordpress .htaccess içeriğine yukarıdaki satırları ekleyecektir. .htacesss içeriği kontrol edilmeli ve içerik boşsa en temel olan yukarıdaki satırlar eklenmelidir.

daha genel bir sorun ise mod_rewrite eklentisi sorunları olabilir. modul aktif edilmeli ve apache yeniden başlatılmadır

sudo a2enmod rewrite

sudo systemctl restart apache2

bunu yaptınız ve hala düzelmiyorsa birde apache.conf dosyasının kontrol edilmesinde fayda var. AllowOverride parametlerisini All olarak değiştirin.

    <Directory /var/www/html>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Require all granted
    </Directory>

ssh root erişimini engelleme

en temel güvenlik ihtiyaçlarından bir tanesidir root kullanıcısının ssh ile bağlantısının engellenmesi.

$ sudo nano /etc/ssh/sshd_config

ssh konfigürasyon dosyasını açıyoruz ve PermitRootLogin ve PasswordAuthentication parametlerini no olarak değiştiriyoruz.

PermitRootLogin no
PasswordAuthentication no

sonrasında takibi sunucumu yeniden başlatmayı ihmal etmiyoruz.

sudo service ssh restart

raspberry pi üzerinde minidlna

çok fazla karışık olmayan basit bir dlna server ihtiyacınız varsa minidlna tam size göre. raspbery pimi açıyoruz ve kurulumu gerçekleştiriyoruz.

 sudo apt-get install minidlna

kurulum sorunsuz olarak tamamlandıktan sonra. minidlna mızı konfigüre edebiliriz.. bunun için bize öncelikle video, ses, resim dosyalarımızın konumu gerekiyor. raspberrypi ye herhangi bir taşınabilir bir disk taktığınızı ve doğru şekilde mount edildiğini varsayacağız.

 df
Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sda1      976760001 366707224 610052777  38% /media/usb

taşınabilir diskimizin kontrolü yaptıktan sonra minidlna nın root olarak çalıştırılmaması önerilmektedir.

 sudo nano /etc/default/minidlna

dosyası içerisinde

# User and group the daemon should run as
#USER="minidlna"
#GROUP="minidlna"

gerekli değişiklikler yapılabilir.. şu aşamada bu çok önemli değil. genel ayarları yapalım. konfigürasyon dosyasını açalım

sudo nano /etc/minidlna.conf

dosya içerisinde aşagıdaki satırları bulalaım

#   * "A" for audio    (eg. media_dir=A,/var/lib/minidlna/music)
#   * "P" for pictures (eg. media_dir=P,/var/lib/minidlna/pictures)
#   * "V" for video    (eg. media_dir=V,/var/lib/minidlna/videos)
#   * "PV" for pictures and video (eg. media_dir=PV,/var/lib/minidlna/digital_camera)
media_dir=/var/lib/minidlna

ben video ve müzik için tanımlamaları yapacağım.

media_dir=V,/media/usb/ARSIV/FILM
media_dir=A,/media/usb/ARSIV/mp3

dosyayı kaydedip çıktıntan sonra. minidlna nın başlatılması gerekecek. şimdi başlatalım. aktif olarak çalışıyorsa yeniden başlatmanız gerekiyor tabiki..

sudo service minidlna start
sudo service minidlna restart
sudo service minidlna force-reload

uygun parametre ile minidlna yı başlattıktan sonra, durum bilgisini kontrol ettiğinizde servisin yeniden başladığından emin olmalısınız.

pi@raspberrypi:~ $ sudo service minidlna status
● minidlna.service - LSB: minidlna server
   Loaded: loaded (/etc/init.d/minidlna; generated)
   Active: active (running) since Sun 2020-07-26 17:40:36 +03; 24min ago
     Docs: man:systemd-sysv-generator(8)
  Process: 1478 ExecStart=/etc/init.d/minidlna start (code=exited, status=0/SUCCESS)
    Tasks: 2 (limit: 2068)
   CGroup: /system.slice/minidlna.service
           └─1497 /usr/sbin/minidlnad -f /etc/minidlna.conf -P /run/minidlna/minidlna.pid -r

Jul 26 17:40:36 raspberrypi systemd[1]: Starting LSB: minidlna server...
Jul 26 17:40:36 raspberrypi systemd[1]: Started LSB: minidlna server.

artık minidlan kullanıma hazır. aynı ağdaki bir cihazdan tarayıcınıza

http://raspberry-pi-ip-adresi:8200

adresini yazarak minidlna nın durum bilgisine ulaşamabilirsiniz… yazdığım dizinlerde 481 tane film 2887 tanede mp3 müzik dosyası varmış.

dlna client özelliği olan herhangi bir cihazdan artık içeriğe erişebiliriz. ben testi evdeki vestel televizyonda ve windows 10 da test yaptım.

ekran görüntüsü yer aldığı gibi raspberrypi yi sorunsuz olarak gördü. videoları sorunsuz izleyebiliyorum. ancak mp3 lerde sorun yaşadım. mp3 kısmını kullanmadığım için çok detaylı incelemedim ancak mp3 sayısının çok fazla olması, cache aktif etmemem ve mp3 isimlerinde ve mp3 taglarında çok fazla türkçe ve absürt karartker yer almasından kaynaklandığını düşünüyorum.

artık elimizde çalışan bir dlna servisimi var. biraz kişileştirmek isterseniz konfigürasyon dosyasını açarak

sudo nano /etc/minidlna.conf

örneğin clientlerda görünen dlna sunucu adını,

# Name that the DLNA server presents to clients.
# Defaults to "hostname: username".
#friendly_name=
friendly_name=cicek_dlna_server

değiştirebilirsiniz.

NOT: bu servisi aktif kullanılırken raspberrynizde aktif bir şeyler yapmak isterseniz dikkatli olur.. benim rpi de hd video izlerken %25 sistem kaynakların tüketiyor.

raspberry pi üzerinde en basitinden telegram

yaptığınız uygulamaları sosyal platformlar ile buluşturmak istiyorsanız telegram bunun için iyi bir başlangıç olabilir.

öncelikle mevcut bir telegram hesabınız olması gerekiyor. hesabınızla

BotFather

botunu bulun ve sırayla

/start
/newbot
/kullanicak_bot_adi_bot ( sonunda bot olmak zorunda)

yazıyoruz. adımları doğru şekilde gerçekleştirdiysek; yeni bir bot oluşturarak bize bir token / HTTP API üretecek.

uygulamamızı raspberry pi üzerinde gerçekleştireceğimiz için bize öncelikle sağlam bir kütüphane gerekiyor. ben bu uygulamamızda python – teleport kütüphanesi kullanacağım

pip install telepot

ile kütüphanemizi raspberry pi üzerine kuralım. ( python , pip vb gereksinimlerin daha önceden kurulu olduğu varsayılmaktadır)

kullanıcıdan gelecek komutları dinleyen ve buna cevap dönecek basit bir bot yapalım. aşağıdaki örnekte raspberry pi nin gerçek ipsini, zamanı gibi basit bir kaç fonksiyonun nasıl gerçekleştirileceği görülmektedir.

uygulamayı geliştirerek raspberry pi ile istediğiniz tüm işlemleri telegram üzerinden yönetebilirsiniz.

#coder :- Ferhat Cicek

import sys
import time
import telepot
import requests
import datetime

def handle(msg):
    chat_id = msg['chat']['id']
    command = msg['text']

    print('Komut: %s' % command)

    if command =='ip':
       ipadd = requests.get('https://checkip.amazonaws.com').text.strip()
       bot.sendMessage(chat_id, str(ipadd))
    elif command == 'zaman':
        bot.sendMessage(chat_id, str(datetime.datetime.now()))
    elif command == 'resim':
        bot.sendPhoto(chat_id, photo="/wp-content/uploads/2019/09/kalyon.jpg")
    elif command == 'dosya':
        bot.sendDocument(chat_id, document=open('/home/pi/telegram/telegram.py'))
    elif command == 'muzik':
        bot.sendAudio(chat_id, audio=open('/home/pi/test.mp3'))

bot = telepot.Bot('6686324245:AAVuDyUVKAYeKVLW3TuFD5ty_3XTVQTnpZQ')
bot.message_loop(handle)
print('Komut bekleniyor...')

while 1:
    try:
        time.sleep(10)
    except KeyboardInterrupt:
        print('\n Program sonlandı')
        exit()
    except:
        print('Hata')

python ile yazdığımız bu küçük uygulamayı çalıştırsak ve raspberry pi

ve telegrama ait ekran görüntüleri aşağıdaki gibi olacaktır.

linux de cpu kullanımını kısıtlamak

genel olarak bir uygulamanın çok fazla cpu tüketmesi istenilmez. bu cpu tüketimi genel olarak bir kaç nedenden kaynaklanır.

  • kötü programcılık örnekleri
  • zafiyat oluşturmak için kötü niyetli uygulamalar
  • iyi yönetilmeyen sunucularda yük dengeleme v.b. yapılmaması
  • gerçekten işlem gücü gerektiren kernel derleme, 3d render v.b. işlemlerde

cpu tüketimi neden olursa olsun pcde bunun olmasını elbette istemiyoruz.. bunun için oldukça kullanışlı bir uygulama mevcut. önce uygulamayı sistemize kuralım.

sudo apt-get install cpulimit

kurulu yaptıktan sonra kullanmaya başlayabilirsiniz basit bir örnek yapalım.

cpulimit -l 20 python face-detect.py haarcascade.xml

diğer kullanım seçenekleri için help den yararlanılabilir. sisteminizde faza tüketilen uygulamalar için http://www.ferhatcicek.com/bilisim-dunyasi/isletim-sistemi-bilisim-dunyasi/linux/sh/20170821/yuksek-kaynak-tuketen-uygulamalari-bulmak/2177.html yazısına bakabilirsiniz.

Usage: cpulimit TARGET [OPTIONS...] [-- PROGRAM]
   TARGET must be exactly one of these:
      -p, --pid=N        pid of the process
      -e, --exe=FILE     name of the executable program file
                         The -e option only works when
                         cpulimit is run with admin rights.
      -P, --path=PATH    absolute path name of the
                         executable program file
   OPTIONS
      -b  --background   run in background
      -f  --foreground   launch target process in foreground and wait for it to exit
      -c  --cpu=N        override the detection of CPUs on the machine.
      -l, --limit=N      percentage of cpu allowed from 1 up.
                         Usually 1 - 800, but can be higher
                         on multi-core CPUs (mandatory)
      -m, --monitor-forks  Watch children/forks of the target process
      -q, --quiet        run in quiet mode (only print errors).
      -k, --kill         kill processes going over their limit
                         instead of just throttling them.
      -r, --restore      Restore processes after they have
                         been killed. Works with the -k flag.
      -s, --signal=SIG   Send this signal to the watched process when cpulimit exits.
                         Signal should be specificed as a number or 
                         SIGTERM, SIGCONT, SIGSTOP, etc. SIGCONT is the default.
      -v, --verbose      show control statistics
      -z, --lazy         exit if there is no suitable target process,
                         or if it dies
          --             This is the final CPUlimit option. All following
                         options are for another program we will launch.
      -h, --help         display this help and exit

linuxde klasör altındaki en büyük boyutlu dosyaları bulmak

find . -printf ‘%s %p\n’| sort -nr | head -10

ile en büyük 10 dosya aranmış olur.

root@cicekpc:/boot# find . -printf '%s %p\n'| sort -nr | head -10
59562456 ./initrd.img-4.13.0-46-generic
59549708 ./initrd.img-4.13.0-45-generic
43531219 ./initrd.img-4.10.0-32-generic
7870224 ./vmlinuz-4.13.0-46-generic
7870224 ./vmlinuz-4.13.0-45-generic
7579408 ./vmlinuz-4.10.0-32-generic
3884611 ./System.map-4.13.0-46-generic
3884611 ./System.map-4.13.0-45-generic
3719197 ./System.map-4.10.0-32-generic
2397909 ./grub/unicode.pf2

linuxde dizin altındaki dosya sayıları

du -a | cut -d/ -f2 | sort | uniq -c | sort -nr

fcicek@cicekpc:/media/fcicek/DOKUMAN$ du -a | cut -d/ -f2 | sort | uniq -c | sort -nr
   1255 site
    605 mcu cpu
    338 turkce

ubuntu üzerinde ssh sunucu

ubuntu üzerinde ssh sunucuyu aktif etmek istiyorsanız openssh-server i kurmak yeterli olacaktır.

fcicek@ubuntu:~$ sudo apt-get install openssh-server

sunucunun aktif olduğunun kontrollerini yapalım.

fcicek@ubuntu:~$ ps -aux|grep sshd
root        472  0.0  0.5  72136  5656 ?        Ss   09:31   0:00 /usr/sbin/sshd -D
root       1268  0.0  0.7 105604  7044 ?        Ss   09:36   0:00 sshd: fcicek [priv]
fcicek     1292  0.0  0.4 105604  4608 ?        S    09:36   0:00 sshd: fcicek@pts/0
fcicek     1467  0.0  0.1  14352  1168 pts/0    S+   09:44   0:00 grep --color=auto sshd

linuxte yüksek kaynak tüketen uygulamaları bulmak

root@cicekpc:/home/fcicek#  ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
  PID  PPID CMD                         %MEM %CPU
 2878  2102 /usr/lib/firefox/firefox    17.8 28.3
 1274     1 /usr/sbin/mysqld             1.8  0.0
 2579  2102 /usr/bin/compiz              1.4  1.5
 2710  2452 /usr/bin/gnome-software --g  1.0  0.0
 1313  1267 /usr/lib/xorg/Xorg -core :0  0.8  1.8
 2723  2452 nautilus -n                  0.6  0.0
 2879     1 /usr/lib/fwupd/fwupd         0.6  0.0
 3083  2102 /usr/lib/gnome-terminal/gno  0.5  0.1
 1513     1 dockerd -G docker --debug -  0.5  0.1

Back To Top