Bryan Dongray's(all free to download) |
Source | Download size Last update |
Description | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
blksync.tgz blksync.zip perl script |
tgz:1313 zip:1346 2013-04-12 |
Block compare or sync two files | ||||||||||||||||||
Only really useful to sync a BIG file where read is significantly faster than write (such as on USB device),
as the only changed blocks are overwritten.
Not generally useful for copying files with a very large number of differences,
as it reads both files, compares, and writes when necessary. Default is read-only mode (just reporting number of blocks different), this is useful (like a block level "cmp"). However, some people have said that: • rsync --inplace --no-whole-file <SRC> <DST>
should do the same optimized writing only what changed
(see the rsync delta-transmission algorithm),
but it turns out the rsync algorithm runs about 50% slower
than what might be considered a brute-force compare and copy (as blksync does).
But rsync is definitely faster than a copy of the entire file.Also, users on Windows machines probably don't have rsync, but may have perl. | ||||||||||||||||||||
byte.tgz byte.zip C source |
tgz:2368 zip:2542 1995-10-18 |
Binary edit/view file | ||||||||||||||||||
Opens a file to edit bytes in place (although can be used to append bytes). Useful for modifying/viewing a binary file. | ||||||||||||||||||||
colsort.tgz colsort.zip C source |
tgz:1394 zip:1431 1988-03-11 |
colsort | ||||||||||||||||||
Each input line has its columns sorted. Separator can be specified, also numeric and reverse sort options, and output to a file (which can be the same as an input file) | ||||||||||||||||||||
dayago.tgz dayago.zip perl script |
tgz:1245 zip:1280 2014-01-10 |
Find out how long ago a date was (or will be) | ||||||||||||||||||
Converts date YYYY-MM-DD (or YYYY/MM/DD, and can handle obvious DD/MM/YY or MM/DD/YY)
into how many days ago (or "will be" as a negative number). Also given a number of days ago returns when was date was (or "will be" - if a negative number). | ||||||||||||||||||||
dexit.tgz dexit.zip sh script & C program |
tgz:888 zip:1035 2013-06-28 |
Run command in prompted loop | ||||||||||||||||||
Useful as a frontend to (for example) xterm,
so when the command dies that is running in an xterm window,
you can still see the error - and optionally re-run it just by pressing return,
or change the command via CTRL+C.
I use it for my ssh sessions. Requires C program (provided) which runs subprocess giving back default interrupts, without interrups affecting current process. | ||||||||||||||||||||
diskseek.tgz diskseek.zip C source |
tgz:1862 zip:1868 2010-07-13 |
Disk seeking/testing | ||||||||||||||||||
Has a few different options to sequentually go from
one end of a disk (or file) to the other,
or it can start at both ends moving the offset closer to the middle,
or it can randomly skip around the disk. The default is to go "dual sequential", alternating writes at starting and the mid-point, ending at the mid-point and the end. By default is in read-only mode, use the -w option to write over your disk, add -n option to not verify data written. It does its best to be synchronous, but sometimes you need the -o option to close and open the disk after each write, especially when using raw devices. | ||||||||||||||||||||
easter.tgz easter.zip C source |
tgz:873 zip:860 1995-12-15 |
Work out Easter day | ||||||||||||||||||
It's been accurate every year so far. I found the algorithm in the mid 1970's, coded it in Basic on an ancient home computer, and it worked. Since then it got coded into C - as seen here. | ||||||||||||||||||||
fakeftp.tgz fakeftp.zip sh source |
tgz:472 zip:507 2009-02-19 |
Fake FTP server | ||||||||||||||||||
Does what you expect from an FTP server, except never logs anyone in. Useful when you need to appear like you have a working FTP server, but don't want one really! Add a xinetd.d ftp file, eg: service ftp and restart (or signal a HUP to) your xinetd. | ||||||||||||||||||||
fields.tgz fields.zip perl source |
tgz:1266 zip:1292 2005-01-27 |
parse fields in input | ||||||||||||||||||
An input stream of the format:Identifier na=va nb=vb nc=vc ... can be trimmed down to just view named fields requested. Handles quotation on input, and provides as necessary on output. | ||||||||||||||||||||
gethost.tgz gethost.zip perl source |
tgz:620 zip:657 2013-12-04 |
Lookup hostname or IP | ||||||||||||||||||
A bit like "nslookup" or "dig", although much much simpler,
without any extra features,
but importantly it does not use any DNS backdoors to get its results,
it just uses standard libraries (most code does) to lookup hostnames or IPs. Output looks like a normal hosts file. Handles multiple results returned in an expected way. | ||||||||||||||||||||
hdr.tgz hdr.zip perl source |
tgz:326 zip:331 2003-04-23 |
Show/remove email/web headers | ||||||||||||||||||
Very simple, but useful as a pipe command to only see headers, or to strip off headers of messages or HTML protocol conversations. | ||||||||||||||||||||
killtree.tgz killtree.zip perl source |
tgz:922 zip:956 2009-01-22 |
kill process and children | ||||||||||||||||||
Kill PID, but also any children, and any children's children, etc. | ||||||||||||||||||||
latency.tgz latency.zip C source |
tgz:3254 zip:3400 2002-09-14 |
Test network latency | ||||||||||||||||||
Uses the "echo" port (port 7) to send (and time) a byte going
to a remote host... and back. It gives a real sense of how long
an interactive session (eg over ssh, including port forwarders, or a VPN) will feel
like (far better than ping can). If port 7 is off, use thru (on this page) as a looped listener (on a high port number), eg:
| ||||||||||||||||||||
mkpass.tgz mkpass.zip perl source |
tgz:556 zip:554 2003-07-11 |
make crypt'd password (for UNIX and webservers) | ||||||||||||||||||
Useful to make htpasswd files for Apache. | ||||||||||||||||||||
parallel.tgz parallel.zip perl source |
tgz:1866 zip:2040 2008-12-16 |
Run command in parallel | ||||||||||||||||||
Like xargs, but runs one command with each stdin line (as arg to command),
but (unlike xargs) runs those commands in parallel (as parallel as requested).
As one finishes it will start another, keeping up the parallelism. Useful for pushing files out in parallel, or running remote commands (or ping) to many remote systems (if input is list of hostnames). Useful on multi-cpu machines to run parallel compute intensive commands, on given input values. There is the -a option to allow a given number of stdin lines per parallel command. Hint: Use $PARALLELID for unique ID (eg tmp file identifier to stop parallel writing to the same output file, then cat /sort those tmp files into one)Included is a "pingall" script showing how to quickly ping all systems on your local network. Be careful with this code, you can flood your own system! Update: xargs now has the ability to run commands in parallel (but no PARALLELID environment variable given, use $$ ):• xargs -Pparallelism -r -n1 -d'\n' CMD ARGS...
| ||||||||||||||||||||
pos.tgz pos.zip C source |
tgz:1020 zip:1175 2002-08-22 |
Find position of text in binary file | ||||||||||||||||||
Simple text searching in any file (or raw disk), but missing "backtracking" - sorry. | ||||||||||||||||||||
rand.tgz rand.zip perl source |
tgz:477 zip:955 2003-04-15 |
Random number | ||||||||||||||||||
As every high school student gets to write. | ||||||||||||||||||||
rm.tgz rm.zip C source |
tgz:4550 zip:4748 2014-01-12 |
Remove command - with secure option | ||||||||||||||||||
There is also "srm" out there,
but it has fewer options (and I wrote this one years before "srm" existed).
Also there is "shred", but it's not a good replacement for "rm". This version your choice of either the Gutmann Method of a 35 pass sequence of bit patterns (which can takes hours, and is considered overkill), a slightly shorter version with 30 passes (without repeated random passes, and the sequence 00 to ff is reordered so that as many bits change as possible on each overwrite step, ending with 00), and a shorter version with 25 passes, or just to zero the file (ie 1 pass), before the actual (optional) remove. Use very verbose mode to see each sequence being written. The passes are there to really erase a file and hide the magnetic pattern on various types of disk, but be warned that more overwrite passes will make deletion much slower. Note: With secure options, the files and directories are renamed, file times, permissions, and owner (if possible) are all changed multiple times to random values, which REALLY hides all details of the file you want to "shred" securely. The "-o" option is just to overwrite the file (useful for devices - ie to not delete the device). | ||||||||||||||||||||
sleep.tgz sleep.zip C source |
tgz:1654 zip:1687 2002-11-10 |
Fully featured sleep command | ||||||||||||||||||
Allows the use of subsecond values,
the ability to give time in hours and minutes (and days), or combinations,
and allows to sleep to a specific time of day. So you can sleep for 1h 30m, or until 01:23:45 (without having to calculate number of seconds). It can also be told to sleep forever (without putting lots of 9's). Is compatible with normal sleep command. Update: Linux default sleep can now do most of this. | ||||||||||||||||||||
sparse.tgz sparse.zip perl source |
tgz:1019 zip:1015 2005-04-21 |
Format columns into a table | ||||||||||||||||||
Convert a column of pairs of values, into a CSV (or table). eg
| ||||||||||||||||||||
superlative.tgz superlative.zip sh script |
tgz:1133 zip:4420 2024-09-20 |
Display superlative values | ||||||||||||||||||
Script to search given files and/or folders (recursively) for the oldest, newest, smallest or biggest. | ||||||||||||||||||||
syncup.tgz syncup.zip perl source |
tgz:3147 zip:3142 2012-06-22 |
directory synchronization | ||||||||||||||||||
Sync two directories by creating, copying, deleting, setting times, owner and attributes of any files, directories, and symbolic links in the destination that were added, changed, or deleted in the source tree. Perl enables the code to work for UNIX and DOS, but under UNIX and cygwin rsync does the same job.
| ||||||||||||||||||||
tai64ntools.tgz tai64ntools.zip C source |
tgz:7030 zip:15434 2012-07-11 |
TAI64n timestamps | ||||||||||||||||||
Based on daemontools v0.7.6
from D. J. Bernstein
but with other UNIX specific tools removed to only have:
| ||||||||||||||||||||
tcpviawebproxy.tgz tcpviawebproxy.zip perl source |
tgz:2682 zip:2690 2014-03-10 |
Port forwarding via webproxy | ||||||||||||||||||
Needed for a TCP connection but only had a webproxy to go through.
It listens on any given port,
connects to the given webproxy,
sending necessary startup sequence (giving authentication if necessary),
and eats returned header from the webproxy,
leaving a two-way TCP traffic with the remote host/port but via the webproxy. It can be set in "loop mode", where multiple sessions can happen. | ||||||||||||||||||||
thru.tgz thru.zip C source |
tgz:5421 zip:5417 2003-02-04 |
Network forwarding/listening | ||||||||||||||||||
Written years ago, and is sort of similar to the more recent popular program "netcat",
and the very recent "socat" code,
although this code only handles TCP connections. This program can listen on a port as well as send to remote port, to/from a local file or program, but can do both at the same time (a port forwarder). However, it can listen on 2 ports (if necessary) as a backwards port forwarder, for those times when you want to initiate a TCP connection from an external site, through a firewall, but the process inside the firewall ACTUALLY has to do the initiated TCP session, eg:
Hint: If you only have a webproxy through a firewall then use tcpviawebproxy found at this site.It can handle 3 (or more) way connections, but it's a bit hokey. In loop (or parallel) mode, it's a one port inetd. | ||||||||||||||||||||
timeout.tgz timeout.zip C & perl source |
tgz:2065 zip:2457 2003-03-08 |
Timeout command | ||||||||||||||||||
A way to run a command and have it stop after a specified time. I found it useful for scripted "rsh" (or ssh) commands. | ||||||||||||||||||||
unsort.tgz unsort.zip perl source |
tgz:298 zip:336 2013-09-18 |
unsort | ||||||||||||||||||
Unsorts (aka randomizes) its input. Takes STDIN or files, no options. Your system may be able to use "sort -R" | ||||||||||||||||||||
up.tgz up.zip sh script |
tgz:2540 zip:2565 2014-03-05 |
Check remote is host up | ||||||||||||||||||
Uses ping (although optional)
and optionally by connecting to a given port (or list of ports). Can check remote hosts concurrently, and optionally loop (eg when waiting for remote hosts to reboot). Tested on cygwin and Linux. Recommended you download parallel and gethost (both available on this page). | ||||||||||||||||||||
uu.tgz uu.zip perl source |
tgz:688 zip:1016 2003-07-12 |
Decode UUencoded | ||||||||||||||||||
uuencode still exists and needs a manual way to read (or write) such a format. Also useful to encode/decode "basic encryption" of web authenication. | ||||||||||||||||||||
wipefree.tgz wipefree.zip sh script |
tgz:785 zip:801 2015-01-24 |
Securely erase disk freespace | ||||||||||||||||||
A script creates big files until the disk is full,
and then erases them securely via "shred". End result your disk freespace is securely erased. Use srm if you prefer, but edit the wipefree script to use that deletion method instead of "shred". | ||||||||||||||||||||
x10cmd.tgz x10cmd.zip C source sh script |
tgz:2195 zip:2381 2009-12-13 |
Control X10 firecracker | ||||||||||||||||||
Linux program (set SUID root) to control the x10 firecracker,
an RS232 serial device which can control upto 256 power outlets. Also a simple queueing system so no x10cmd commands conflict (eg if via cron, etc). |
Dongrays → Bryan Dongray → UNIX/C/Shell/Perl/DOS tools |