แสดงบทความที่มีป้ายกำกับ Raspberry pi torrent client แสดงบทความทั้งหมด

วันเสาร์ที่ 25 กรกฎาคม พ.ศ. 2558

[HOW TO] Auto Backup Mysqldump with Python and crontab

[HOW TO] Auto Backup Mysqldump with Python and crontab



        บทความนี้เราจะมาเขียน  สคริปให้ auto mysql backup บน Linux กันนะครับ โดยมีการใช้ ภาษา Python และคำสั่ง crontab สำหรับ ตารางเวลาในการทำงาน

Dowload


# wget https://github.com/Guutong/pySQLdump/releases/download/v.0.0.1/pySQLdumpSetup.sh

# chmod +x pySQLdumpSetup.sh

# mkdir /root/pySQLBackup/

# ./pySQLdumpSetup.sh


Set vi conf/settings.ini

[mysql]
user = user_name
password = pass_word
dbname = db_name
destination = /root/pySQLBackup/

How to setting Auto backup with crontab

sudo apt-get install crontab
crontab -e
00 00 * * 0 cd /opt/pySQLdump/ && sh run.sh
ESC
:wq!
/etc/init.d/cron restart 
Code Python
#!/usr/bin/python
######################################################
#____________________________________________________#
#_______________Mr.Pornmongkon Pongsai_______________#
#____________________pySQLdump v.0.1_________________#
#______________Create Date : 25-07-2015______________#
#____________________________________________________#
######################################################
from ConfigParser import SafeConfigParser
from os import path
from subprocess import Popen, PIPE
import shlex
import datetime
import logging

def main():
    config_file = 'conf/settings.ini'
    logs_path = 'logs/pySQLdump.log'
    logging.basicConfig(filename=logs_path,format='%(asctime)s:%(levelname)s:%(message)s',level=logging.DEBUG)
    # Read in all the settings
    config = SafeConfigParser()
    config.read(config_file)
    user = config.get('mysql', 'user')
    password = config.get('mysql', 'password')
    database = config.get('mysql', 'dbname')
    destination = config.get('mysql', 'destination')
    date = datetime.datetime.now().strftime('%Y%m%d-%H%M%S')
    file_name = 'pySQLdump-' + database + '-' + date

    logging.info('==[RUN]== Running mysqldump')
    cmd = 'mysqldump -u' + user + ' ' + database + ' -p"' + password + '" --result-file="' + file_name + '.sql"'
    logging.debug(cmd) 
    run_cmd(cmd)

    logging.info('Creating Zip file')
    run_cmd('zip ' + file_name + '.zip ' + file_name + '.sql')

    logging.info('Removing dump file')
    run_cmd('rm ' + file_name + '.sql')

    logging.info('Moving zipped tarball to destination')
    run_cmd('mv ' + file_name + '.zip ' + destination)
    logging.info('==[PASS]== Mysqldump success!')
    
def run_cmd(cmd):
    process = Popen(shlex.split(cmd), stdout=PIPE)
    dump_output = process.communicate()[0]
    exit_code = process.wait()
    if exit_code != 0:
        print(dump_output)
        raise Exception(str(exit_code) + ' - Error executing command.  Please review output.')

if __name__ == '__main__':
    main()

วันเสาร์ที่ 6 กรกฎาคม พ.ศ. 2556

[HOW TO] Make Raspberry Pi ให้เป็น BitTorrent Box

Raspberry pi torrent client : Deluge on Raspbian





 ใช้ Raspbian “wheezy” download จาก http://www.raspberrypi.org/downloads
ให้ต่อ external harddisk กับ raspberry pi แล้วเราลองดูชื่อของ HDD แต่ละคนจะไม่เหมือนกัน
ในที่นี้ USBHDD1 ถ้าเราไมเหมือนให้เปลี่ยนเป็นชื่อของHDDเราในคำสั่งข้างล่างจะเป็นการสร้าง folderใหม่สำหรับการเก็บไฟล์

sudo mkdir /media/USBHDD1/shares/torrents/downloading
sudo mkdir /media/USBHDD1/shares/torrents/completed
sudo mkdir /media/USBHDD1/shares/torrents/watch
sudo mkdir /media/USBHDD1/shares/torrents/torrent-backups
ทำการอัพเดทฐานข้อมูลของแพ็กเก็จทั้งหมดก่อนด้วยคำสั่ง
sudo apt-get update
sudo apt-get upgrade

ติดตั้งโปรแกรม Deluge for ThinClient Access
ขั้นแรกทำการติดตั้ง deluged และ deluge-console
sudo apt-get install deluged
sudo apt-get install deluge-console
หลังจากที่ติดตั้งเสร็จ แล้ว ทำการรัน deluged  ด้วยคำสั่งนี้
deluged
sudo pkill deluged
พิมพ์คำสั่งต่อไปนี้เพื่อสำรองข้อมูลของไฟล์การตั้งค่าเดิมแล้วเปิดสำหรับการแก้ไข:
cp ~/.config/deluge/auth ~/.config/deluge/auth.old
nano ~/.config/deluge/auth

พอมาอยู่ในหน้าของ nano ให้เพิ่มคำสั่ง

user:password:level
username , password ตามทีต้องการ, กำหนดเป็น level 10 (the full-access/administrative level for the daemon). ในที่นี้เราใช้ pi:raspberry:10.จากนั้น CTRL+X และ save your changes จากนั้น ทำการรัน deluged และ deluge-console ด้วยคำสั่ง
deluged
deluge-console
ถ้าทำแล้วเกิดข้อผิดพลาดหรือ error ให้ใช้คำสั่ง “exit” แล้วทำการรันใหม่อีกครั้ง
พอมาอยู่หน้าจอ console ให้ตั้งค่าคำสั่งตามนี้
config -s allow_remote True
config allow_remote
exit
จากนี้เราก็สามารถจะคอนโทรลจากที่อื่นได้แล้ว ต่อไปทำการปิดโปรเซสเพื่อให้การตั้งค่าใหม่สมบูรณ์ด้วยคำสั่ง และรัน deluged ใหม่อีกครั้ง
sudo pkill deluged
deluged

ติดตั้ง WebUI เพื่อรีโมทเข้ามา
คราวนี้มารีโมท deluge ด้วย WebUI กัน
ต่อด้วยคำสั่ง:
sudo apt-get install deluged
sudo apt-get install python-mako
sudo apt-get install deluge-web
deluge-web
แล้วทำการรัน deluge-web
พอร์ตเริ่มต้นสำหรับ WebUI เป็น 8112; หากต้องการที่จะเปลี่ยนใช้คำสั่งดังต่อไปนี้
sudo pkill deluge-web
nano ~/.config/deluge/web.conf
หยุด WebUI และเปิดแฟ้มการตั้งค่า ใช้ nano เพื่อแก้ไขบรรทัด: "port ": 8112, และแทนที่ 8112 มีจำนวนพอร์ต (ใช้มากกว่า 1000 เพราะ 1-1000 จะถูกสงวนโดยระบบ)
จากนี้ก็จะสามารถรีโมทผ่าน WebUI ได้แล้วจาก browser ในวงแลน หรือ ของ raspberry pi โดยการใส่ IP (http://<ใส่ IP ของ Raspberry PI>:8112)
พอเข้ามา อาจจะมีการถาม Password ให้ใส่ “deluge” ตอนนี้เราก็จะได้รูปแบบเว็บคอนโทรลที่ใช้ง่ายและสะดวกมาก
ตั้งค่าที่เก็บไฟล์ไว้ในHDD
การกำหนดที่อยู่ของไฟล์ .torrent ต่างๆ
ไปที่ Preferences -> Downloads ค่าเริ่มต้นจะเป็น /home/pi. :ซึ่งจะเก็บไว้ใน SDcard ที่มีขนาดน้อยนิด
จากนั้นก็กำหนดที่อยู่ของการเก็บไฟล์ใน Deluge ใหม่:

แล้วทำการกด OK เพื่อเสร็จสิ้น