Python: uploading file via HTTP with pyCurl and Requests

Here is a simple way to upload file in Python. You should have PyCurl installed. import pycurl from cStringIO import StringIO filename=’test_file’ c = pycurl.Curl() c.setopt(c.POST, 1) c.setopt(c.HTTPPOST, [(‘title’, ‘test’), ((‘file’, (c.FORM_FILE, filename)))]) c.setopt(c.VERBOSE, 1) bodyOutput = StringIO() headersOutput = StringIO() c.setopt(c.WRITEFUNCTION, bodyOutput.write) c.setopt(c.URL, “http://upload.example.com” ) c.setopt(c.HEADERFUNCTION, headersOutput.write) c.perform() print bodyOutput.getvalue() Upd. File upload with…

RPM: Bulding Python package for Redis

To build RPM package for Python library is really easy task if developer has kindly included setup.py file in it. Let’s build RPM for redis-py package by Andy Mccurdy. First of all we need archive with last version of redis-py. [root@develop ~]# wget https://github.com/downloads/andymccurdy/redis-py/redis-2.4.9.tar.gz Unpack it. [root@develop ~]# tar xzvf redis-2.4.9.tar.gz [root@develop ~]# cd redis-2.4.9/…

DRBD split-brain solution in primary/primary setup

Recently one of our customers DRBD cluster has detected split-brain: node2 kernel: block drbd1: Split-Brain detected, dropping connection! node2 kernel: block drbd1: helper command: /sbin/drbdadm split-brain minor-1 node2 kernel: block drbd1: helper command: /sbin/drbdadm split-brain minor-1 exit code 0 (0x0) This is ┬áprimary/primary cluster. And to fix this issue we had to perform manual procedures…

Bash: sort IP addresses

It’s very easy sorting IP-list. For example you have file ‘ip-list’. To sort IP’s redirect file contents to following sort command. Also collect only unique IP’s in yours list. cat ip-list | sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 | uniq >> sorted-ips Didn’t find the answer to your question?…

How to exclude directories while using rsync

Sometimes when you copy a lot of data with rsync you may to exclude some sub-directories. You can do this by using –exclude. For instance, you want to copy files from /mnt to /home/destination_dir/, and you want to exclude directory /mnt/dir1/dir2/. rsync -az –exclude=’dir1/dir2/’ /mnt/ /home/destination_dir/ A lot of users do mistake when specifing path.…