filebrowser
browsespy yazısı sonrası daha güzel kullanışlı bir dosya yöneticisi önerisi istenler oldu. daha gelişmiş bir dısya yönetici için go tabalı filebrowser incelenebilir. kurulum için
curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash
ve çalıştırmak için
filebrowser -a 0.0.0.0 -p 8080 -r $HOME
yeterli olacaktır.
proje sitesi : filebrowser.org
huawei network ekipmanlarında qinq yapılandırılmış sub-interface
huawei routerların sub interface mantığından dolayı interface altında yapılmış sub interfacelerdeki kullanılan pe-vid ce-vid değerlerini öğrenmenin ne yazakkı basit ve güzel bir yöntemi yok… yaa mevcut konfiürasyona bakacaksınız yada “display qinq information termination” komutunu kullanacaksınız. bu komutun örnek çıktısı aşagıdaki yer almaktadır. .
<test_router>display qinq information termination
Eth-Trunk1.62
L3VPN bound
Total QinQ Num: 1
qinq termination pe-vid 102 ce-vid 62 vlan-group 1
Total vlan-group Num: 1
vlan-group 1
control-vid 62 qinq-termination
Eth-Trunk1.113
VLL/PWE3 bound
Total QinQ Num: 1
qinq termination pe-vid 102 ce-vid 113 vlan-group 1
Total vlan-group Num: 1
vlan-group 1
control-vid 113 qinq-termination
Eth-Trunk5.56
Total QinQ Num: 1
qinq termination pe-vid 42 ce-vid 56 vlan-group 1
Total vlan-group Num: 1
vlan-group 1
control-vid 56 qinq-termination
Eth-Trunk5.69
VLL/PWE3 bound
Total QinQ Num: 1
qinq termination pe-vid 62 ce-vid 69 vlan-group 1
Total vlan-group Num: 1
vlan-group 1
control-vid 69 qinq-termination
python da flask-mail kullanarak eposta gönderimi
Flask-Mail kütüphanesini kullanarak python da basit bir eposta gönderme uygulaması yapalım. öncelikle
pip install Flask-Mail
ile flask-mail kurulumu yapalım… flask-mail da SMTP konfigürasyonu için kullanılabilecek parametreler aşagıdaki gibi tanımlanmış.
MAIL_SERVER : varsayılan ‘localhost’
MAIL_PORT : varsayılan 25
MAIL_USE_TLS : varsayılan False
MAIL_USE_SSL : varsayılan False
MAIL_DEBUG : varsayılan app.debug
MAIL_USERNAME : varsayılan None
MAIL_PASSWORD : varsayılan None
MAIL_DEFAULT_SENDER : varsayılan None
MAIL_MAX_EMAILS : varsayılan None
MAIL_SUPPRESS_SEND : varsayılan app.testing
MAIL_ASCII_ATTACHMENTS : varsayılan False
programda ihtiyaçımız sırasında gerekli güncellemeleri yapacağız. mail gönderimi sırasında ise
flask_mail.Message(subject='', recipients=None, body=None, html=None, sender=None, cc=None, bcc=None, attachments=None, reply_to=None, date=None, charset=None, extra_headers=None, mail_options=None, rcpt_options=None)
uygun şekilde yapılandırmak gerekecek.
subject – email subject header
recipients – list of email addresses
body – plain text message
html – HTML message
sender – email sender address, or MAIL_DEFAULT_SENDER by default
cc – CC list
bcc – BCC list
attachments – list of Attachment instances
reply_to – reply-to address
date – send date
charset – message character set
extra_headers – A dictionary of additional headers for the message
mail_options – A list of ESMTP options to be used in MAIL FROM command
rcpt_options – A list of ESMTP options to be used in RCPT commands
simdi bu bilgileri kullanarak basit kodumuzu yazalım.. gerekli kütüphaneleri import ederim
from flask import Flask
from flask_mail import Mail, Message
app = Flask(__name__)
mail= Mail(app)
smtp konfigürasyonumuzu yapalım.. ben aylık 500 kadar bedava eposta gönderilimize izin veren mailtrap servisini için konfigürasyon yapacağım..
app.config['MAIL_SERVER']='smtp.mailtrap.io'
app.config['MAIL_PORT'] = 2525
app.config['MAIL_USERNAME'] = '81e0d22cd4b15'
app.config['MAIL_PASSWORD'] = '94355a1553f58'
app.config['MAIL_USE_TLS'] = True
app.config['MAIL_USE_SSL'] = False
mail= Mail(app)
eposta içeriğini, gönderici ve alıcıda tanımlayalım
msg = Message('Test Mesajı', sender = 'ferhatcicek@mailtrap.io', recipients = ['iletisim@ferhatcicek.com'])
msg.body = "Bu bir test mesajıdır"
mail.send(msg)
return "Eposta gönderildi."
artık kodumuz hazır durumda…
#app.py - flask-mail kullanarak eposta gönderimi
from flask import Flask
from flask_mail import Mail, Message
app = Flask(__name__)
mail= Mail(app)
app.config['MAIL_SERVER']='smtp.mailtrap.io'
app.config['MAIL_PORT'] = 2525
app.config['MAIL_USERNAME'] = '81e0d22cd4b15b'
app.config['MAIL_PASSWORD'] = '94355a1553f58b'
app.config['MAIL_USE_TLS'] = True
app.config['MAIL_USE_SSL'] = False
mail= Mail(app)
@app.route("/")
def index():
try:
msg = Message('Test Mesajı', sender = 'ferhatcicek@mailtrap.io', recipients = ['iletisim@ferhatcicek.com'])
msg.body = "Bu bir test mesajıdır"
mail.send(msg)
return "Eposta gönderildi."
except Exception as e:
return(str(e))
if __name__ == '__main__':
app.run(debug = True)
flask run -h 0.0.0.0 -p 8080 yazarak kodumu çalışrarak tarayıcımıza http://localhost:8080 yazdığımızda epostamızın iletildiğine ait bilgilendirme mesajını alacağız… mesaj gönderme kısmını bir döngü içine alarak toplu eposta gönderimide yapabilirsiniz…
browsepy
web tabanlı sunucunuzda güvenlik amacı ile indexlemeyi devre dışı bıraktıysanız ve aktif bir dosya yöneticiside kullanmıyorsanız browsepy anlık çözümler için size yardımcı olacaktır. browsepy python ve flask tabalı. çok gelişmiş özellikleri yo ve görsel açıdanda fazla bir şey sunmadığını belirmeliyim. kurulum için
pip install browsepy
ve çalıştırmak içinde
browsepy 0.0.0.0 8080 --directory $HOME
yeterli olacaktır.
proje sites: https://github.com/ergoithz/browsepy
sqlite-web
sqlite ile çalışırken bir ide ihtiyacınız olursa ve progralama diliniz python ise web tabanlı sqlite-web isimli basit bir çözüm mevcut. kurulum için
pip install sqlite-web
ve kullanım için ise
sqlite_web veritabani.db -H 0.0.0.0 -p 8080
yeterli olacaktır. sqlite-web flask tabanlı olduğu ihtiaç duyulan kütüphane sayısı fazla olabilir. mevcut projelerinizi bozmamak adına virtualenv ile çalışılması tavsiye edilmektedir.
proje sitesi : https://github.com/coleifer/sqlite-web
python – pip ile güncel olmayan paketlerin güncellenmesi
windows altında python ile çalışıyor ve paket yöneticisi olarak pip kullanıyorsanız
pip list --outdated
ile güncel olmayan paket listesini görebilirsiniz.
PS C:\python> pip list --outdated
Package Version Latest Type
------------------------ ------------ ------------ -----
absl-py 0.11.0 0.12.0 wheel
add-trailing-comma 2.0.2 2.1.0 wheel
aiohttp 3.7.4 3.7.4.post0 wheel
APScheduler 3.6.3 3.7.0 wheel
astroid 2.5.1 2.5.2 wheel
autoflake 1.3.1 1.4 sdist
paketlerin hepsini güncellemek istiyorsanız
pip list --outdated --format freeze | %{$_.split('==')[0]} | %{pip install --upgrade $_}
işinize yarayacaktır. paket bağlımlıklarında dolayını bunu önermiyorum. paket bağmlılıkları bir çok konuda sorun olabileceği için virtualenv kullanmanılması tavsiye edilir..
Python – Selenium kullarak wordpress admin paneline giriş
web hasadı ,kazıma, test vb yöntemler için en kullanışlı araçlardan bir tanesi selenium kütüphanesi. diğer bir deyişle web üzerinde herhangi bir işi otomatize etmek istiyor, bir siteden veri çekmek istiyorsanız selenium ihtiyacınızı karşılamakta yardımcı olacaktır.
bu kısa yazıyı selenium kullanarak wordpress kullanan bir siteye giriş yapmanın nasıl yapılabileceğine gösteren en temel python kodunu ile sonlandıralım.
from selenium import webdriver
import time
browser = webdriver.Firefox()
url = "https://www.wordpresssitsi.com/wp-admin/"
browser.get(url)
username = browser.find_element_by_id("user_login")
password = browser.find_element_by_id("user_pass")
username.send_keys("k_adi") # wordpress kullanici adi
password.send_keys("k_adi_sifre") # wordpress kullanici adi
submitButton = browser.find_element_by_id("wp-submit")
submitButton.click()
time.sleep(10)
browser.close()
python da pandas ile excel üzerinde çalışmak – 1
pythonda excel dosyaları ile çalışmak için kullanabileceğiniz kütüphane sayısı oldukça fazla. bu kütüphanlerin kendine göre avantajları mevcut. bu kısa yazıda kullanımı oldukça kolay olan pandaw dan bahsedegim
öncelikle pandası kuralım
pip3 install pandas
kurulum sorunsuz olarak tamamlandıktan sonra ilk örneğimizi yapabiliriz. temel ıolarak üç adım mevcut.
import pandas as pd # 1. adim kutuphaneyi import ediyoruz
excel_text = pd.read_excel(r'router.xls') # 2. adim excel dosyami belirtiyoruz
print (excel_text ) # 3. ekrana yazdiriyoruz / işliyoruz..
en temel haliye excel içindeki verileri text ortamına aktarmış olduk.. bu python dosyamızı çalıştırınca aşagıdaki şekilde bir çıktı elde ediyoruz.
root@fcicek:~/python/# python3 router_excel.py
router interface
0 router_a 0/0/1
1 router_b 0/0/2
2 router_c 0/0/3
csv dosyası üzerinde çalışmak istereniz read_excel yerine read_csv kullanmanız gerekmektedir. ; ile ayrılmış ve utf8 ile kodlanmış bir csv dosyasında çalışmak isterseniz
data = pd.read_csv (r'router.csv', sep=';', encoding='utf8', quotechar='"')
işinize yarayacaktır. eğer herhangi bir sutun veya satır ile çalışmak istiyorsak
df = pd.DataFrame(data, columns= ['router'])
ile çalışacağınız sütünu seçebilirsiniz. satırları okuyorak satırlardaki veriler ile işlem yapmak için ise
for i in df.index:
print(df['router'][i]+'----'+df['interface'][i])
yapısını kullanabilirsiniz. pandas konusunda daha detaylı bilgilere erişmek isterseniz aşagıdaki bağlantılar işinize yarayacaktır
https://pandas.pydata.org/docs/