Expat-IT Tech Bits

Home

Contact

Links

Search this site:

Categories:

/ (287)
  Admin/ (122)
    Apache/ (10)
      HTTPS-SSL/ (4)
      PHP/ (3)
      performance/ (2)
    Cherokee/ (1)
    LAN/ (4)
    LVM/ (6)
    Monitoring/ (2)
      munin/ (2)
    SSH/ (6)
    SSL/ (1)
    Samba/ (1)
    VPN-options/ (6)
      OpenVPN/ (1)
      SSH-Proxy/ (3)
      Tinc/ (1)
      sshuttle/ (1)
    backups/ (17)
      SpiderOak/ (1)
      backuppc/ (5)
      dirvish/ (1)
      misc/ (6)
      rdiff-backup/ (1)
      rsync/ (1)
      unison/ (2)
    commandLine/ (24)
      files/ (8)
      misc/ (10)
      network/ (6)
    crontab/ (1)
    databases/ (15)
      MSSQL/ (2)
      MySQL/ (8)
      Oracle/ (3)
      PostgreSQL/ (1)
    dynamicDNS/ (2)
    email/ (11)
      Dovecot/ (1)
      deliverability/ (1)
      misc/ (1)
      postfix/ (7)
      puppet/ (1)
    iptables/ (3)
    tripwire/ (1)
    virtualization/ (9)
      VMware/ (1)
      virtualBox/ (8)
  Coding/ (14)
    bash/ (1)
    gdb/ (1)
    git/ (3)
    php/ (5)
    python/ (4)
      Django/ (2)
  Education/ (1)
  Hosting/ (27)
    Amazon/ (18)
      EBS/ (3)
      EC2/ (10)
      S3/ (1)
      commandline/ (4)
    Godaddy/ (2)
    NearlyFreeSpeech/ (3)
    Rackspace/ (1)
    vpslink/ (3)
  Linux/ (30)
    Android/ (1)
    Awesome/ (3)
    CPUfreq/ (1)
    China/ (2)
    Debian/ (8)
      APT/ (3)
      WPA/ (1)
    audio/ (1)
    encryption/ (3)
    fonts/ (1)
    misc/ (6)
    remoteDesktop/ (1)
    router-bridge/ (3)
  SW/ (45)
    Micro$soft/ (1)
    browser/ (2)
      Chrome/ (1)
      Firefox/ (1)
    business/ (28)
      Drupal/ (9)
      KnowledgeTree/ (6)
      Redmine/ (2)
      SugarCRM/ (7)
      WebERP/ (2)
      WordPress/ (1)
      eGroupware/ (1)
    chat/ (1)
    email/ (1)
    fileSharing/ (2)
      btsync/ (1)
      mldonkey/ (1)
    graphics/ (2)
    research/ (2)
    website/ (6)
      blog/ (6)
        blosxom/ (3)
        rss2email/ (1)
        webgen/ (1)
  Security/ (15)
    IMchat/ (2)
    circumvention/ (2)
    cryptoCurrency/ (1)
    e-mail/ (4)
    greatFirewall/ (1)
    hacking/ (1)
    password/ (1)
    privacy/ (2)
    skype/ (1)
  Services/ (1)
    fileSharing/ (1)
  TechWriting/ (1)
  xHW/ (14)
    Lenovo/ (1)
    Motorola_A1200/ (2)
    Thinkpad_600e/ (1)
    Thinkpad_a21m/ (3)
    Thinkpad_i1300/ (1)
    Thinkpad_x24/ (1)
    USB_audio/ (1)
    scanner/ (1)
    wirelessCards/ (2)
  xLife/ (17)
    China/ (9)
      Beijing/ (5)
        OpenSource/ (3)
    Expatriation/ (1)
    Vietnam/ (7)

Archives:

  • 2016/07
  • 2016/05
  • 2016/02
  • 2016/01
  • 2015/12
  • 2015/11
  • 2015/06
  • 2015/01
  • 2014/12
  • 2014/11
  • 2014/10
  • 2014/09
  • 2014/07
  • 2014/04
  • 2014/02
  • 2014/01
  • 2013/12
  • 2013/10
  • 2013/08
  • 2013/07
  • 2013/06
  • 2013/05
  • 2013/04
  • 2013/02
  • 2013/01
  • 2012/12
  • 2012/10
  • 2012/09
  • 2012/08
  • 2012/07
  • 2012/06
  • 2012/05
  • 2012/04
  • 2012/03
  • 2012/01
  • 2011/12
  • 2011/11
  • 2011/10
  • 2011/09
  • 2011/08
  • 2011/07
  • 2011/06
  • 2011/05
  • 2011/04
  • 2011/02
  • 2010/12
  • 2010/11
  • 2010/10
  • 2010/09
  • 2010/08
  • 2010/07
  • 2010/06
  • 2010/05
  • 2010/04
  • 2010/03
  • 2010/02
  • 2010/01
  • 2009/12
  • 2009/11
  • 2009/10
  • 2009/09
  • 2009/08
  • 2009/07
  • 2009/06
  • 2009/05
  • 2009/04
  • 2009/03
  • 2009/02
  • 2009/01
  • 2008/12
  • 2008/11
  • 2008/10
  • 2008/09
  • Subscribe XML RSS Feed

    Creative Commons License
    This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
    PyBlosxom

    This site has no ads. To help with hosting, crypto donations are accepted:
    Bitcoin: 1JErV8ga9UY7wE8Bbf1KYsA5bkdh8n1Bxc
    Zcash: zcLYqtXYFEWHFtEfM6wg5eCV8frxWtZYkT8WyxvevzNC6SBgmqPS3tkg6nBarmzRzWYAurgs4ThkpkD5QgiSwxqoB7xrCxs

    Sun, 27 Dec 2015


    /Admin/commandLine/network: Port/Firewall Testing with Netcat and Socat

    To avoid application-related issues and just do a bare-bones test of whether or not a port is open, use netcat or socat. On the server end, turn off the application that should be listening on port 9092, then:

    FOR NETCAT:

    Start listening on the server side:

    netcat -l -p 9092 (newer versions of netcat)
    netcat -l 9092 (older versions)

    Attempt to connect to the port from the client on the other side of the firewall:

    nc IPADDRESS 9092

    If everything is working, anything you type on either end should be mirrored on the other end.

    FOR SOCAT:

    Start listening on the server side:

    socat TCP4-LISTEN:9092,reuseaddr,fork gopen:/tmp/capture,seek-end=0,append

    Now send some text from the client end to the listener:

    date | socat STDIO tcp:localhost:9092

    In this example, the client is on the same machine, replace "localhost" with an IP or DNS if not. All text sent from the client side will be appended to the file /tmp/capture.

    posted at: 02:44 | path: /Admin/commandLine/network | permanent link to this entry

    Tue, 09 Jun 2015


    /Admin/commandLine/misc: Send E-mail From the Command Line

    echo "This will go into the body of the mail." | mail -s "Hello world" you@youremail.com
    Or, if you wish to send to a remote SMTP server, install the heirloom-mailx package and:
    export smtp=host:port
    mailx -s "some subject" address@example.com
    some random body text
    ctrl-D

    This also works well in a cron job.

    posted at: 21:57 | path: /Admin/commandLine/misc | permanent link to this entry

    Thu, 08 Jan 2015


    /Admin/commandLine/network: Configuring and Testing Proxies on the Command Line

    Much *nix software will obey the proxy environment variables:

    export http_proxy=http://1.2.3.4:3128/
    export https_proxy=http://1.2.3.4:3128/

    for a squid proxy on IP 1.2.3.4, for instance. (Use "unset" to turn these environment variables off later.) You can then test with and without the proxy thusly, for example:

    w3m http://google.com/
    w3m -no-proxy http://google.com/

    Or you can test directly with telnet:

    telnet 1.2.3.4 3128

    which in the case of squid will result in following output:

    Escape character is '^]'.

    And then enter the URL you wish to access over the proxy:

    GET http://www.google.com/ HTTP/1.1

    followed by this line:

    host:www.google.com

    followed by two returns, and the site html will be dumped in your terminal.

    posted at: 04:16 | path: /Admin/commandLine/network | permanent link to this entry

    Sun, 26 Oct 2014


    /Admin/commandLine/files: Increase the Sound Level in a Video

    Without changing the video content, I might add:

    ffmpeg -i video-in.avi -vol 1536 -vcodec copy video-out.avi

    Apparently the -vol bit is poorly documented[1], but it is said that every 256 is 100%. Therefore, in the example above 1536 represents 600%

    [1] http://www.linuxquestions.org/questions/linux-general-1/increase-audio-volume-on-flv-file-778063/

    posted at: 11:33 | path: /Admin/commandLine/files | permanent link to this entry

    Thu, 17 Apr 2014


    /Admin/commandLine/files: Your Primary Group Matters!!!

    This is how one changes a user's default group to "developers" (group must already exist):

    usermod -g developers username

    A common scenario (one would think) is a busy /var/www/ directory edited by multiple people. So, for some directories one might meed BOTH apache and some group of users to have write privileges. Then we naively set up something that looks like this for /var/www/somedir/file.html:

    drwxrwxr-x 5 www-data developers 4.0K Apr 17 03:55 file.html

    For a user to write to this file, it appears to be INSUFFICIENT for said user to be a part of the developers group. The developers group must be his primary group, and then it will work.

    posted at: 04:58 | path: /Admin/commandLine/files | permanent link to this entry

    Mon, 29 Jul 2013


    /Admin/commandLine/misc: Fingerprint a Public GPG Key

    This is particularly interesting in the context of RetroShare[1], and the prevention of Man-In-The-Middle (MITM) attacks:

    gpg --with-fingerprint file-containing-public-key.rsc

    Both sides of the key exchange should generate a fingerprint for both keys, and then compare the fingerprints over another communication channel (definitely NOT using RetroShare!).

    [1] http://retroshare.sourceforge.net/

    posted at: 02:42 | path: /Admin/commandLine/misc | permanent link to this entry

    Tue, 23 Jul 2013


    /Admin/commandLine/files: Find & process files & directories

    Find files ending in ".db", in and below the current directory:

    find . -name "*.db" -print | xargs /bin/ls -al
    find . -name "*.db" -print | xargs /bin/rm -f

    find . -name "*.mp3" -exec ls {} \;
    find . -name "*.mp3" -exec rm -f {} \; # remove files one at a time
    find . -name "*.mp3" -exec rm -f {} + # remove all files with one rm

    Files last modified more then thirty days ago, in a specified directory:

    find /home/userid/trash_* -mtime +30 -type f -exec rm -rf {} \;

    Remove empty directories:

    find /path/to/base/directory -type d -empty -delete

    Find files with a particular name:

    find . -type f -name "*unison.tmp-bad" -exec ls -alht {} \; | less

    Calculate the size of files found by "find":

    find . -type f -name "*unison.tmp-bad" -exec ls -l {} \; | awk '{ s+=$5 } END { print s }'

    posted at: 01:16 | path: /Admin/commandLine/files | permanent link to this entry

    Sun, 21 Jul 2013


    /Admin/commandLine/misc: Resuscitating A Damaged Hard Disk

    So my laptop received a pretty hard knock while being turned on, and a part of the disk was destroyed. Having gotten everything I could off the thing (I did not lose anything important) my thoughts now turn to "can I fix it". It is, after all, a newish 500G disk with a non-trivial price tag. Let's try:

    First put the thing in a USB enclosure, hook it up, and use your favorite partition editor to divide it into several partitions (I chose five 100G partitions). Then start testing the partitions one by one, with a read/write test, ie.:

    e2fsck -k -c -c /dev/sdb1
    dumpe2fs -b /dev/sdb1

    Remove any partitions that have errors. Then install Debian in the ones that are left, using LVM to stitch them all together. Wish me luck....

    posted at: 08:58 | path: /Admin/commandLine/misc | permanent link to this entry

    Tue, 02 Jul 2013


    /Admin/commandLine/misc: Web Page to HTML

    Especially when the page runs off the screen and a screenshot just will not do the job:

    wkhtmltopdf http://blog.langex.net/ /tmp/webpage.pdf

    And really useful for those of us whose primary CV is a web page.

    posted at: 02:07 | path: /Admin/commandLine/misc | permanent link to this entry

    Sat, 08 Jun 2013


    /Admin/commandLine/misc: yum: Use Just One Repo to Fix Broken Dependency

    Recently seen on Amazon AWS' "Linux" distribution: mosh would not install because of a broken dependency on libprotobuf. This was a soluble problem, because an installable version of mosh existed in the epel repo, but yum insisted on installing the most recent version from the AWS repo, even though it was broken. The fix is to restrict yum to consider only packages from epel, and ignore all other repos:

    yum --disablerepo "*" --enablerepo "epel" install protobuf mosh

    posted at: 02:33 | path: /Admin/commandLine/misc | permanent link to this entry

    Wed, 05 Jun 2013


    /Admin/commandLine/misc: Processing Lists

    Suppose, for instance, you want to remove all i386 packages from an amd64 install:

    apt-get remove $(wajig list-installed | grep i386)

    posted at: 10:06 | path: /Admin/commandLine/misc | permanent link to this entry

    Fri, 05 Apr 2013


    /Admin/commandLine/files: Search & Replace Text

    A single file:

    sed -i 's/maverick/natty/g' /etc/apt/sources.list

    In multiple files and subdirectories:

    perl -e "s/OLDSTRING/NEWSTRING/g;" -pi.save $(find /path/to/directory/to/be/searched -type f)
    grep -rl OLDSTRING . | xargs perl -pi~ -e 's/OLDSTRING/NEWSTRING/'

    Note that "." above seems to include hidden files. Replace "." with "*" and hidden files are not included.

    posted at: 03:06 | path: /Admin/commandLine/files | permanent link to this entry

    Mon, 18 Feb 2013


    /Admin/commandLine/network: Bandwidth Measurement with iPerf

    On one side, with port 5001 open, start the server:

    iperf -s

    On the other side, start a bi-directional test:

    iperf -c IP-of-server -d

    posted at: 02:27 | path: /Admin/commandLine/network | permanent link to this entry

    Mon, 03 Sep 2012


    /Admin/commandLine/files: How to Assemble a Multi-Page PDF from the Command Line

    Note that libreoffice / openoffice will save any document as a PDF by clicking the PDF icon in the tool bar.

    To convert an image file to PDF:

    convert filename.jpg filename.pdf

    To merge all PDF's in the current directory into one:

    pdftk *.pdf cat output file.pdf

    Note that when using the '*' above, files are added to the PDF in alphabetical order.

    posted at: 01:23 | path: /Admin/commandLine/files | permanent link to this entry

    Tue, 19 Jun 2012


    /Admin/commandLine/network: Port Testing

    Of course, to test a TCP port, most have probably seen telnet in action:

    telnet <IP> <Port#>

    Telnet, however, only talks TCP. To test a UDP port use netcat:

    nc -u <IP> <Port#>

    posted at: 23:07 | path: /Admin/commandLine/network | permanent link to this entry