Showing posts with label alias. Show all posts
Showing posts with label alias. Show all posts

Monday, August 8, 2016

Shell lovin' fool

        I am a shell lovin' fool. No..really. I love shells. I love playing with new ones, and I have   strong opinions on the ones I have tried. Don't get me started on zsh, or when the appropriate time to  use 'set -o vi' is. I think tab completion is about the most awesome thing ever created.
        It's easy if you know me, to know this about me. My github is a mess of shells that never even  made it to an alpha release. Right now I am committed to finishing two that I think are actually useful. I currently am working on one in python, called trash, and a second that has some networking   tools integrated called beastietools(GoLang).
        Why make shells? Particularly, why make shells that are API, or a set of related APIs specific? It's all about interface. I'm sure plenty of normies love their clickety clicks, but I don't. I use a   tiling desktop, and have for a long while. I started with awesomewm, or ratpoision or something, and    now I use i3. It's not a ricer thing at all either. My i3, is nearly a standard install with slight     modifications. I give no shits about aesthetics. I mean look at this blog. My vimrc is more heavily     modified than my i3 config. You could make a bunch of aliases, sure. But there's more than one problem  with that. All those curl or httpie commands become way to difficult to manage, even if you are using an import in the .bashrc file, to separate the commands.
        Another thing with aliases, is I see a lot of people using them in such a way it hinders, rather than aids. As a sys admin or a dev, you need to create your aliases in such a way that the compliment the commands you would already use. If you're in the scenario of jumping from box to box, you are going to be tangling yourself up in commands that don't exist. I'll expand more on the philosophical way to execute aliases in a future post.
        With trash I have gotten to an alpha release. I invite you to take a look at my alpha, and be critical. I want any constructive idea you want me to add, remove, or change.

Wednesday, January 27, 2016

Everything I learned about Linux in the Last 24 hours 1453914384

Unix stickers has a referal program so instead of just trying to hawk amazon goods I can try to sell you something you want, so if you want a five dollar cred and to help the old punk out just head over to unixstickers through this link.

On a more serious note, a lot of us were wondering what the hell happend to Ian Murdock, half of the Debian , After his twitter posts, that were removed after his death. It seems his accusations of police brutality were just forgetten. I'm not going to rehash all of that, because someone else has written a post that is more articulate than I can be but clearly voicing the same concerns I had, here.

I asked a friend about whether anyone on his team cared about systemd, and he said no which prompted this exchange:



Yeah that's right the guy with a cheery reboot PID, told me passion was dead.

Ok so the one liner of the day, is combined with a stack overflow answer I had to read to solve the problem... SERIOUSLY, READ THIS STACK OVERFLOW answer, it's fucking crazy.

When someone tells you your solution is '/'' to a single quite you're like, no that's not right, whatever. But yeah that was the answer.

Here's the alias I was putting in my .bashrc, with output:

alias power='upower -i /org/freedesktop/UPower/devices/battery_BAT0 | grep "percentage" | sed "s/ //gi" | awk -F ":" '\''{print $2}'\''

[dusty@localhost ~]$ power
98%


Sunday, January 10, 2016

Bittorrent from seedbox to client.

So generally when I do torrents I get a good seedbox from someone like seedboxes.cc. But sometimes in a pinch I make one in the cloud, maybe on a service provider that isn't going to protect me, you can always claim your app was hacked, when the dmca comes. And say someone is using your box to torrent (This works like once, seriously don't do this.) Or maybe you have a home box, on some ISP that let's you torrent (unlikely). But whatever you need to set up a linux seed box, and your just downloading linux iso's anyway. So just apt-get or yum rtorrent down and in your home directory put an .rtorrent.rc file in your home directory like the one below. This is essentially, the same as the sample one, with the directories changed, and the directories aren't there whether you change them or not so make sure the sessions, watch and downloads directory are created whatever you make them as. THAT'S:

/home/dusty/downloads
/home/dusty/watch
/home/dusty/.sessions

Here is the rc file:

# Maximum and minimum number of peers to connect to per torrent.
#min_peers = 40
#max_peers = 100

# Same as above but for seeding completed torrents (-1 = same as downloading)
#min_peers_seed = 10
#max_peers_seed = 50



# Maximum number of simultanious uploads per torrent.
#max_uploads = 15



# Global upload and download rate in KiB. "0" for unlimited.
download_rate = 0
upload_rate = 125



# Default directory to save the downloaded torrents.
directory = /home/dusty/downloads/


# Default session directory. Make sure you don't run multiple instance
# of rtorrent using the same session directory. Perhaps using a

# relative path?

session = /home/dusty/.sessions

# Watch a directory for new torrents, and stop those that have been
# deleted.

schedule = watch_directory,5,5,load_start=/home/dusty/watch//*.torrent
#schedule = untied_directory,5,5,stop_untied=



# Close torrents when diskspace is low.

schedule = low_diskspace,5,60,close_low_diskspace=100M

# Stop torrents when reaching upload ratio in percent,
# when also reaching total upload in bytes, or when
# reaching final upload ratio in percent.

# example: stop at ratio 2.0 with at least 200 MB uploaded, or else ratio 20.0

#schedule = ratio,60,60,"stop_on_ratio=200,200M,2000"



# The ip address reported to the tracker.
#ip = 127.0.0.1
#ip = rakshasa.no



# The ip address the listening socket and outgoing connections is
# bound to.

#bind = 127.0.0.1
#bind = rakshasa.no
# Port range to use for listening.
port_range = 7800-8000



# Start opening ports at a random position within the port range.
port_random = yes



# Check hash for finished torrents. Might be usefull until the bug is
# fixed that causes lack of diskspace not to be properly reported.
#check_hash = no



# Set whetever the client should try to connect to UDP trackers.
#use_udp_trackers = yes



# Alternative calls to bind and ip that should handle dynamic ip's.
#schedule = ip_tick,0,1800,ip=rakshasa
#schedule = bind_tick,0,1800,bind=rakshasa



schedule = ISOS,10,10,"load_start=/home/path/to/torrentfiles/*.torrent,d.set_directory=/mnt/path/to/data/ISOS"





# Encryption options, set to none (default) or any combination of the following:
# allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext
#
# The example value allows incoming encrypted connections, starts unencrypted
# outgoing connections but retries with encryption if they fail, preferring
# plaintext to RC4 encryption after the encrypted handshake
#
encryption = allow_incoming,require

# Enable DHT support for trackerless torrents or when all trackers are down.
# May be set to "disable" (completely disable DHT), "off" (do not start DHT),
# "auto" (start and stop DHT as needed), or "on" (start DHT immediately).
# The default is "off". For DHT to work, a session directory must be defined.
#
dht = auto

# UDP port to use for DHT.
#
# dht_port = 6881

# Enable peer exchange (for torrents not marked private)
#
peer_exchange = yes

#Pre-Allocate files
system.file_allocate.set = yes

#
# Do not modify the following parameters unless you know what you're doing.
#

# Hash read-ahead controls how many MB to request the kernel to read
# ahead. If the value is too low the disk may not be fully utilized,
# while if too high the kernel might not be able to keep the read
# pages in memory thus end up trashing.
#hash_read_ahead = 10

# Interval between attempts to check the hash, in milliseconds.
#hash_interval = 100

# Number of attempts to check the hash while using the mincore status,
# before forcing. Overworked systems might need lower values to get a
# decent hash checking rate.
#hash_max_tries = 10



On my tumblr, I have a one liner for uploading .torrent files. I'm going to try to coherently explain how it is useful. First of all you need a box running rtorrent. I personally had a seedbox at seedboxes.cc. The one liner:

IFS=$(echo -en "\n\b");for i in $(find . -cmin -7 | grep -i "torrent$" ); do scp -r $i bsdpunk@seedbox:~/torrents/watch/; done



It tells you to ignore spaces and such. And find all files in a directory that are ending in .torrent, and are from the last seven minutes, and upload them to your rtorrent watch directory.What I do with this is put an alias in .bashrc file, named sevenminutes. Something like:
alias sevenminutes='IFS=$(echo -en "\n\b");for i in $(find . -cmin -7 | grep -i "torrent$" ); do scp -r $i dusty@45.79.160.94:/home/dusty/watch/; done'



Then I can download whatever I want from something like kickass.to or whatever, then cd ~/Downloads && sevenminutes. It is important to note you will want keys set up, so you don't have to type the damn password for every file. Then I just rsync them bad boys down.
rsync -avz -P root@45.79.160.94:/home/dusty/downloads/ Downloads/

Then you should be able to pull down your torrents, and have fun.