Linux freeze on high memory consumption

Sometimes when working with virtual images, R or python, I can see that the memory load is really high and then the system becomes completely unresponsive. This post will show you how to optimize memory management in linux so the system does not freeze.

Continue reading

Advertisements

Create “New Document” in Nautilus

In nautilus 3.63 the “New Document” has disappeared but you can easily add this option following these steps:

  1. Edit the file ~/.config/user-dirs.dirs
  2. You should set the XDG_TEMPLATES_DIR variable to “$HOME/Templates”. This is the content of my user-dirs.dirs file:

    XDG_DESKTOP_DIR="$HOME/Desktop"
    XDG_DOWNLOAD_DIR="$HOME/Downloads"
    XDG_TEMPLATES_DIR="$HOME/Templates"
    XDG_PUBLICSHARE_DIR="$HOME/Public"
    XDG_DOCUMENTS_DIR="$HOME/Documents"
    XDG_MUSIC_DIR="$HOME/Music"
    XDG_PICTURES_DIR="$HOME/Pictures"
    XDG_VIDEOS_DIR="$HOME/Videos"
  3. Create an empty text file in ~/Templates. In a shell write:
  4. [user@mypc ~]$ touch ~/Templates/text.txt
  5. Open Nautilus and click with the right button inside a directory over a black space. You will find the option New Document->Text

You can create more templates, for example I have created one for html files. You just have to create a html file in “$HOME/Templates” with the following content:

<!DOCTYPE html>
<html>
  <head>
    <title></title>
  </head>
  <body>
  </body>
</html>

Replace content of multiple files

Problem

Imagine you have some misspelled words in some documents:

$ grep Intalac *
file02.html: <h2 align="left"><a name="ubuntu"></a>Intalación en Ubuntu 12.10<img src="img/009-ubuntu.png" width="62" height="59"></h2>
file04.html: <h3 align="left">Intalación en Ubuntu <img src="img/009-ubuntu.png" width="62" height="59"></h3>
file04.html: <h3 align="left">Intalación en Ubuntu <img src="img/009-ubuntu.png" width="62" height="59"></h3>

In this case you want to change a word in all the documents.

Solution

You can use sed with vi commands:

sed -i 's/<original>/<replaced>/g' 

In this case we can solve the problem with

sed -i 's/Intal/Instal/g' *.html

Encrypt a file image in Linux

Problem

I want to create a ciphered file partition mounted on loopback.

Create crypto image

1. First create the file image which will contain all your encrypted data:

dd if=/dev/zero of=extra.img bs=100k count=1024

2. Load the cryptoloop kernel module:

sudo modprobe cryptoloop

3. Set up the loop device with your desired encryption algorithm. It will ask you for the password:

sudo losetup -e aes /dev/loop0 extra.img

4. Format the file partition and mount it:

mkfs.ext4 /dev/loop0
sudo mount /dev/loop0 /mnt/

Load the data partition

The next time you want to load the partition you have to repeat this steps:

sudo modprobe cryptoloop
sudo losetup -e aes /dev/loop0 extra.img
sudo mount /dev/loop0 /mnt/

Ubutu/Debian Users: By default, Debian systems run the password through a hash function. So if you have created your image in another distribution and want to load in Debian you have to add the “-N” option:

sudo losetup -e aes -N /dev/loop0 extra.img

Unload the data partition

To umount the partition:

sudo umount /dev/loop0
sudo losetup -d /dev/loop0