K.S. Bhaskar on 9 Jan 2011 14:20:30 -0800


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: [PLUG] Linux n00b question


On Sun, Jan 9, 2011 at 3:51 PM, JP Vossen <jp@jpsdomain.org> wrote:
>> Date: Sun, 9 Jan 2011 14:09:59 -0500
>> From: "K.S. Bhaskar"<bhaskar@bhaskars.com>
>> Subject: Re: [PLUG] Linux n00b question

[KSB] <...snip...>

>> #!/bin/bash
>> #
>> # Get password and mount /home
>> #
>> umount /home>&/tmp/umounthome_$$_`date +%Y%m%d%H%M%S`.log
>> cryptsetup remove sda2-aes>&/tmp/cryptsetupremove_$$_`date
>> +%Y%m%d%H%M%S`.log
>> cryptsetup -c aes -s 256 create sda2-aes /dev/sda2
>> 2>/tmp/cryptsetup_$$_`date +%Y%m%d%H%M%S`.log
>> fsck -a -t jfs /dev/mapper/sda2-aes | tee /tmp/fsck_$$_`date
>> +%Y%m%d%H%M%S`.log
>> mount -o relatime /dev/mapper/sda2-aes /home>&/tmp/mount_$$_`date
>> +%Y%m%d%H%M%S`.log
>> swapon /home/swap
>
> Oh, you're killing me!!! ÂPersonal pet peeve: running external programs
> (like date) during every line of your script unnecessarily. ÂYes, for this
> script it doesn't matter; it's still a bad habit. Â:-)
>
> More efficient (alignment is more personal preference):
>
> LOG_FILE="/tmp/umounthome_$$_`date +%Y%m%d%H%M%S`.log"
> FSCK_LOG_FILE="/tmp/fsck_$$_`date +%Y%m%d%H%M%S`.log"
> umount /home                    >& $LOG_FILE
> cryptsetup remove sda2-aes             >& $LOG_FILE
> cryptsetup -c aes -s 256 create sda2-aes /dev/sda2 2> $LOG_FILE
> fsck -a -t jfs /dev/mapper/sda2-aes       | tee $FSCK_LOG_FILE
> mount -o relatime /dev/mapper/sda2-aes /home    >& $LOG_FILE
> swapon /home/swap

[KSB] Thank you for resuscitating the voice of my conscience!  I knew
it the moment I wrote the shell script, of course, but it never seemed
worthwhile to clean up the inefficiency since that time.  Through
copying, I have propagated this inefficiency to countless systems, and
I think I'll make my first new years resolution for 2011 to clean up
my encrypted mount /home scripts...

> FYI, bash 4.2 will introduce new printf arguments to just "printf" the date.
> ÂIt's always bugged me that the shell knows what time it is (e.g. the prompt
> \D argument) but you need to use an external program to display it in a
> script. ÂAs of bash 4.2 you don't anymore. ÂI suggested that to Chet a while
> ago, but to be fair other shells have also implemented it (*cough* Paul,
> zsh, I think *cough* :), so I'm not sure what prompted him to add it to
> bash.

[KSB] Neat.  And yes, about time too.

Regards
-- Bhaskar

-- 
Windows does to computers what smoking does to humans
___________________________________________________________________________
Philadelphia Linux Users Group         --        http://www.phillylinux.org
Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
General Discussion  --   http://lists.phillylinux.org/mailman/listinfo/plug