Nxl67002 - AndLinux - Files: Difference between revisions

From miki
Jump to navigation Jump to search
 
(11 intermediate revisions by one other user not shown)
Line 18: Line 18:
cofs0=C:\
cofs0=C:\
cofs1=D:\
cofs1=D:\
</pre>
}}

=== hosts ===
{{hiddenSourceFile|c:\windows\system32\drivers\etc\|hosts|<pre class="hosts">
# Copyright (c) 1993-1999 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host

127.0.0.1 localhost

192.168.11.150 andlinux
</pre>
</pre>
}}
}}


== AndLinux files ==
== AndLinux files ==
<small>Generated with script '''/home/beq06659/bin/generate_wiki_config_file_page.sh''' on host '''andLinux'''</small>


=== Directory /etc ===
=== Directory /etc ===
'''fstab'''
{{hiddenSourceFile|/etc/|fstab|<pre class="fstab">
{{pl2|{{hiddenSourceFile|/etc/|fstab|<source lang=text class="fstab">
# /etc/fstab: static file system information.
# /etc/fstab: static file system information.
#
#
Line 35: Line 63:
0 /mnt/winc cofs defaults,gid=samba,dmask=0775,fmask=0775 0 0
0 /mnt/winc cofs defaults,gid=samba,dmask=0775,fmask=0775 0 0
1 /mnt/wind cofs defaults,gid=samba,dmask=0775,fmask=0775 0 0
1 /mnt/wind cofs defaults,gid=samba,dmask=0775,fmask=0775 0 0
</pre>
}}


</source>
}} }}
=== Directory /etc/privoxy ===
'''set-network-config''' - This file must be '''chmod 755'''. Also the following line must be added to <tt>/etc/sudoers</tt>:
:<code> ALL ALL=(ALL) NOPASSWD: /etc/privoxy/set-network-config </code>
{{pl2|{{hiddenSourceFile|/etc/privoxy/|set-network-config|<source lang=bash class="set-network-config">
#! /bin/bash

# Exit if no network name given or if no corresponding configuration file
[ -n "$1" ] || exit 1

TARGET_FILE="config-$1"

[ -a "/etc/privoxy/$TARGET_FILE" ] || exit 1
ln -sf "$TARGET_FILE" /etc/privoxy/config
/etc/init.d/privoxy restart

</source>
}} }}
'''config-home.patch'''
{{pl2|{{hiddenSourceFile|/etc/privoxy/|config-home.patch|<source lang=diff class="config-home.patch">
--- config.original 2009-11-15 00:50:28.000000000 +0100
+++ config-home 2009-11-17 00:01:48.000000000 +0100
@@ -761,7 +761,7 @@
# listen-address 192.168.0.1:8118
#
#
-listen-address 127.0.0.1:8118
+listen-address :8118
#
#
# 4.2. toggle
</source>
}} }}
'''config-nxp.patch'''
{{pl2|{{hiddenSourceFile|/etc/privoxy/|config-nxp.patch|<source lang=diff class="config-nxp.patch">
--- config-home 2009-11-17 00:01:48.000000000 +0100
+++ config-nxp 2009-11-15 02:34:20.000000000 +0100
@@ -1250,6 +1250,13 @@
# that look like this:
#
# forward localhost/ .
+# nxp only:
+forward-socks5 / localhost:1080 .
+forward 192.168.*.*/ .
+forward 10.*.*.*/ .
+forward 127.*.*.*/ .
+forward 172.19.*.*/ .
+forward 134.27.*.* .
#
#
#
</source>
}} }}
'''config-nxp_auth''' - symlinked to <tt>config-nxp</tt>

'''config-nxp_direct.patch'''
{{pl2|{{hiddenSourceFile|/etc/privoxy/|config-nxp_direct.patch|<source lang=diff class="config-nxp_direct.patch">
--- config-nxp 2009-11-15 02:34:20.000000000 +0100
+++ config-nxp_direct 2009-11-16 16:14:23.000000000 +0100
@@ -1251,7 +1251,7 @@
#
# forward localhost/ .
# nxp only:
-forward-socks5 / localhost:1080 .
+forward / emea.nics.nxp.com:8080
forward 192.168.*.*/ .
forward 10.*.*.*/ .
forward 127.*.*.*/ .
</source>
}} }}
=== Directory /usr/local/bin ===
=== Directory /usr/local/bin ===
'''be''' - This script would ideally require to add the following line to <tt>/etc/sudoers</tt>:
'''be''' - This script would ideally require to add the following line to <tt>/etc/sudoers</tt>:
:<code>ALL ALL=(ALL) NOPASSWD: /bin/loadkeys</code>
:<code>ALL ALL=(ALL) NOPASSWD: /bin/loadkeys</code>
{{pl2|{{hiddenSourceFile|/usr/local/bin/|be|<source lang=bash class="be">

{{hiddenSourceFile|/usr/local/bin/|be|<source lang="bash" class="be">
#!/bin/bash
#!/bin/bash


sudo loadkeys /usr/share/keymaps/i386/azerty/be2-latin1.kmap.gz
sudo loadkeys /usr/share/keymaps/i386/azerty/be2-latin1.kmap.gz

</source>
</source>
}}
}} }}
'''ssh-agent-refresh.sh'''

{{hiddenSourceFile|/usr/local/bin/|ssh-agent-refresh.sh|<source lang="bash" class="ssh-agent-refresh.sh">
{{pl2|{{hiddenSourceFile|/usr/local/bin/|ssh-agent-refresh.sh|<source lang=bash class="ssh-agent-refresh.sh">
#!/bin/bash
#!/bin/bash
#
#
Line 127: Line 225:


exit 0
exit 0

</source>
</source>
}}
}} }}
=== Directory /home/beq06659 ===

=== directory ~ ===
'''.bashrc''' - Everything before <tt>#### CUSTOMIZATION</tt> is the original file.
'''.bashrc''' - Everything before <tt>#### CUSTOMIZATION</tt> is the original file.
{{hiddenSourceFile|~/|.bashrc|<source lang="bash" class=".bashrc">
{{pl2|{{hiddenSourceFile|/home/beq06659/|.bashrc|<source lang=bash class=".bashrc">
# ~/.bashrc: executed by bash(1) for non-login shells.
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
Line 334: Line 432:
PS1='\[\e]0;\w\a\]\n\[\e[0m\e[35m\]\u@\h \[\e[0m\e[33m\]\w\[\e[0m\]\n\$ '
PS1='\[\e]0;\w\a\]\n\[\e[0m\e[35m\]\u@\h \[\e[0m\e[33m\]\w\[\e[0m\]\n\$ '
export PS1
export PS1

</source>
</source>
}}
}} }}
'''.dircolors.cfg'''

{{hiddenSourceFile|~/|.dircolors.cfg|<pre class=".dircolors.cfg">
{{pl2|{{hiddenSourceFile|/home/beq06659/|.dircolors.cfg|<source lang=text class=".dircolors.cfg">
# Configuration file for dircolors, a utility to help you set the
# Configuration file for dircolors, a utility to help you set the
# LS_COLORS environment variable used by GNU ls with the --color option.
# LS_COLORS environment variable used by GNU ls with the --color option.
# Copyright (C) 1996, 1999-2008
# Free Software Foundation, Inc.
# Copying and distribution of this file, with or without modification,
# are permitted provided the copyright notice and this notice are preserved.
# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the
# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the
# slackware version of dircolors) are recognized but ignored.
# slackware version of dircolors) are recognized but ignored.
# Below, there should be one TERM entry for each termtype that is colorizable
# Below, there should be one TERM entry for each termtype that is colorizable
TERM linux
TERM Eterm
TERM linux-c
TERM ansi
TERM mach-color
TERM color-xterm
TERM console
TERM con132x25
TERM con132x25
TERM con132x30
TERM con132x30
Line 357: Line 459:
TERM con80x50
TERM con80x50
TERM con80x60
TERM con80x60
TERM cons25
TERM console
TERM cygwin
TERM cygwin
TERM dtterm
TERM dtterm
TERM eterm-color
TERM gnome
TERM gnome-256color
TERM konsole
TERM kterm
TERM linux
TERM linux-c
TERM mach-color
TERM mlterm
TERM mlterm
TERM putty
TERM putty
TERM xterm
TERM xterm-color
TERM xterm-debian
TERM rxvt
TERM rxvt
TERM rxvt-cygwin
TERM rxvt-cygwin-native
TERM rxvt-unicode
TERM rxvt-unicode
TERM screen
TERM screen
TERM screen-256color
TERM screen-bce
TERM screen-bce
TERM screen-w
TERM screen-w
TERM screen.linux
TERM vt100
TERM vt100
TERM Eterm
TERM xterm
TERM xterm-16color
TERM xterm-256color
TERM xterm-88color
TERM xterm-color
TERM xterm-debian
# Below are the color init strings for the basic file types. A color init
# Below are the color init strings for the basic file types. A color init
# string consists of one or more of the following numeric codes:
# string consists of one or more of the following numeric codes:
Line 389: Line 507:
BLK 40;33;01 # block device driver
BLK 40;33;01 # block device driver
CHR 40;33;01 # character device driver
CHR 40;33;01 # character device driver
ORPHAN 40;31;01 # symlink to nonexistent file
ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file
SETUID 37;41 # file that is setuid (u+s)
SETUID 37;41 # file that is setuid (u+s)
SETGID 30;43 # file that is setgid (g+s)
SETGID 30;43 # file that is setgid (g+s)
STICKY_OTHER_WRITABLE 01;37;42 # dir that is sticky and other-writable (+t,o+w)
STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w)
OTHER_WRITABLE 01;37;43 # dir that is other-writable (o+w) and not sticky
OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky
STICKY 01;37;44 # dir with the sticky bit set (+t) and not other-writable
STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable
# This is for files with execute permission:
# This is for files with execute permission:
EXEC 32
EXEC 32;04
# List any file extensions like '.gz' or '.tar' that you would like ls
# List any file extensions like '.gz' or '.tar' that you would like ls
# to colorize below. Put the extension, a space, and the color init string.
# to colorize below. Put the extension, a space, and the color init string.
# (and any comments you want to add after a '#')
# (and any comments you want to add after a '#')
# If you use DOS-style suffixes, you may want to uncomment the following:
# If you use DOS-style suffixes, you may want to uncomment the following:
#.cmd 32 # executables (bright green)
#.cmd 01;32 # executables (bright green)
#.exe 32
#.exe 01;32
#.com 32
#.com 01;32
#.btm 32
#.btm 01;32
#.bat 32
#.bat 01;32
# Or if you want to colorize scripts even if they do not have the
.tar 01;31 # archives or compressed (bright red)
# executable bit actually set.
#.sh 01;32
#.csh 01;32
# archives or compressed (bright red)
.tar 01;31
.tgz 01;31
.tgz 01;31
.svgz 01;31
.arj 01;31
.arj 01;31
.taz 01;31
.taz 01;31
.lzh 01;31
.lzh 01;31
.lzma 01;31
.zip 01;31
.zip 01;31
.z 01;31
.z 01;31
.Z 01;31
.Z 01;31
.dz 01;31
.gz 01;31
.gz 01;31
.bz2 01;31
.bz2 01;31
.bz 01;31
.tbz2 01;31
.tz 01;31
.deb 01;31
.deb 01;31
.rpm 01;31
.rpm 01;31
.jar 01;31
.jar 01;31
.rar 01;31
.ace 01;31
.zoo 01;31
.cpio 01;31
.7z 01;31
.rz 01;31
# image formats
# image formats
.jpg 35
.jpg 35
Line 433: Line 568:
.tiff 35
.tiff 35
.png 35
.png 35
.svg 35
.mng 35
.pcx 35
.mov 35
.mov 35
.mpg 35
.mpg 35
.mpeg 35
.mpeg 35
.m2v 35
.mkv 35
.ogm 35
.mp4 35
.m4v 35
.mp4v 35
.vob 35
.qt 35
.nuv 35
.wmv 35
.asf 35
.rm 35
.rmvb 35
.flc 35
.avi 35
.avi 35
.fli 35
.fli 35
Line 442: Line 594:
.xcf 35
.xcf 35
.xwd 35
.xwd 35
.yuv 35
# audio formats
# audio formats
.aac 00;36
.flac 35
.au 00;36
.mp3 35
.flac 00;36
.mpc 35
.mid 00;36
.ogg 35
.midi 00;36
.wav 35
.mka 00;36
</pre>
.mp3 00;36
}}
.mpc 00;36

.ogg 00;36
{{hiddenSourceFile|~/|.inputrc|<source lang="bash" class=".inputrc">
.ra 00;36
.wav 00;36
</source>
}} }}
'''.inputrc'''
{{pl2|{{hiddenSourceFile|/home/beq06659/|.inputrc|<source lang=bash class=".inputrc">
#
#
# MIP CUSTOM BINDING STARTS HERE
# MIP CUSTOM BINDING STARTS HERE
Line 504: Line 663:
"\e ":dynamic-complete-history #Esc-space
"\e ":dynamic-complete-history #Esc-space
</source>
</source>
}}
}} }}
'''.profile'''

{{hiddenSourceFile|~/|.profile|<source lang="bash" class=".profile">
{{pl2|{{hiddenSourceFile|/home/beq06659/|.profile|<source lang=bash class=".profile">
# ~/.profile: executed by the command interpreter for login shells.
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
Line 533: Line 692:
##############
##############
eval `ssh-agent-refresh.sh` >/dev/null
eval `ssh-agent-refresh.sh` >/dev/null

</source>
</source>
}}
}} }}
'''.vimrc'''

{{hiddenSourceFile|~/|.vimrc|<source lang="bash" class=".vimrc">
{{pl2|{{hiddenSourceFile|/home/beq06659/|.vimrc|<source lang=text class=".vimrc">
syntax enable
syntax enable
set bg=light
set bg=light
Line 552: Line 712:
vnoremap h m
vnoremap h m
set tabstop=4 softtabstop=4 shiftwidth=4 noexpandtab
set tabstop=4 softtabstop=4 shiftwidth=4 noexpandtab
"set autoindent
set autoindent
set smartindent
"set smartindent
"set cindent
"set cindent
"set cinkeys=0{,0},:,0#,!,!^F
"set cinkeys=0{,0},:,0#,!,!^F
</source>
}}


inoremap <expr> <C-L> pumvisible() \|\| &omnifunc == '' ?
=== Directory ~/.ssh ===
\ "\<lt>C-n>" :
{{hiddenSourceFile|~/.ssh/|config-home|<pre class="config-home">
\ "\<lt>C-x>\<lt>C-o><c-r>=pumvisible() ?" .
\ "\"\\<lt>c-n>\\<lt>c-p>\\<lt>c-n>\" :" .
\ "\" \\<lt>bs>\\<lt>C-n>\"\<CR>"

"Press Ctrl-Space instead of ESC (because Shift-Space only work in GUI).
"See http://vim.wikia.com/wiki/Avoid_the_escape_key
"- nnoremap causes Ctrl-Space to cancel any prefix keys
nnoremap <nul> <Esc>
"- vnoremap causes Ctrl-Space to cancel any selection (gV is required to prevent automatic reselection)
vnoremap <nul> <Esc>gV
"- onoremap causes Ctrl-Space to cancel any operator pending commands (like y)
onoremap <nul> <Esc>
"- inoremap causes Ctrl-Space to exit insert mode and `^ restore cursor position (cursor does not move left)
inoremap <nul> <Esc>`^

" function! CleverTab()
" if pumvisible()
" return "\<C-N>"
" endif
" let line=strpart( getline('.'), 0, col('.')-1 )
" if !(line =~ '^.*[a-zA-Z0-1_]$') "completion only if last char is a word char
" return "\<Tab>"
" elseif exists('&omnifunc') && &omnifunc != ''
" return "\<C-X>\<C-O>"
" else
" return "\<C-N>"
" endif
" endfunction
" inoremap <expr> <Tab> CleverTab()
</source>
}} }}
=== Directory /home/beq06659/.ssh ===
'''config-home'''
{{pl2|{{hiddenSourceFile|/home/beq06659/.ssh/|config-home|<source lang=text class="config-home">
# ~/.ssh/config-home
# ~/.ssh/config-home


Line 586: Line 778:
ProxyCommand none
ProxyCommand none
ServerAliveInterval 15
ServerAliveInterval 15
</pre>
}}


</source>
{{hiddenSourceFile|~/.ssh/|config-nxp|<pre class="config-nxp">
}} }}
'''config-nxp'''
{{pl2|{{hiddenSourceFile|/home/beq06659/.ssh/|config-nxp|<source lang=text class="config-nxp">
# ~/.ssh/config-nxp
# ~/.ssh/config-nxp


Line 615: Line 808:
ProxyCommand /usr/local/bin/ssh-tunnel.pl -q - - %h %p
ProxyCommand /usr/local/bin/ssh-tunnel.pl -q - - %h %p
ServerAliveInterval 15
ServerAliveInterval 15
</pre>
}}


</source>
{{hiddenSourceFile|~/.ssh/|proxy.conf-default|<pre class="proxy.conf-default">
}} }}
'''config-nxp_auth''' - symlinked to <tt>config-nxp</tt>

'''config-nxp_direct''' - symlinked to <tt>config-nxp</tt>

'''proxy.conf-default'''
{{pl2|{{hiddenSourceFile|/home/beq06659/.ssh/|proxy.conf-default|<source lang=text class="proxy.conf-default">
# SSH Tunnel configuration file.
# SSH Tunnel configuration file.


Line 645: Line 843:
#proxy is a synonym - but not portable because it might only work at Leuven...
#proxy is a synonym - but not portable because it might only work at Leuven...
10.0.2.2/32 emea.nics.nxp.com:8080 -C ~/.ssh/clbanner.txt
10.0.2.2/32 emea.nics.nxp.com:8080 -C ~/.ssh/clbanner.txt
</pre>
}}


</source>
{{hiddenSourceFile|~/.ssh/|proxy.conf-nxp_auth|<pre class="proxy.conf-nxp_auth">
}} }}
'''proxy.conf-home''' - symlinked to <tt>proxy.conf-default</tt>

'''proxy.conf-nxp''' - symlinked to <tt>proxy.conf-default</tt>

'''proxy.conf-nxp_auth'''
{{pl2|{{hiddenSourceFile|/home/beq06659/.ssh/|proxy.conf-nxp_auth|<source lang=text class="proxy.conf-nxp_auth">
# SSH Tunnel configuration file.
# SSH Tunnel configuration file.


Line 675: Line 878:
#proxy is a synonym - but not portable because it might only work at Leuven...
#proxy is a synonym - but not portable because it might only work at Leuven...
10.0.2.2/32 emea.nics.nxp.com:8080 -C ~/.ssh/clbanner.txt -u=beq06659 -p=****************
10.0.2.2/32 emea.nics.nxp.com:8080 -C ~/.ssh/clbanner.txt -u=beq06659 -p=****************
</pre>
}}


=== Directory ~/etc ===
'''crontab''' - Install this file with <source lang="bash">crontab -u beq06659 ~/etc/crontab</source>
{{hiddenSourceFile|~/etc/|crontab|<source lang="bash" class="crontab">
# usr /bin/bash to run commands, instead of the default /bin/sh
SHELL=/bin/bash
# mail any output to 'beq06659', no matter whose crontab this is
MAILTO=beq0665
#
#
# m h dom mon dow command (dow=0|7 is sunday)
15 12 * * * ~beq06659/bin/backup_noekeon
</source>
</source>
}}
}} }}
'''config-home-nxp_direct''' - symlinked to <tt>config-default</tt>


=== Directory ~/bin ===
=== Directory /home/beq06659/bin ===
'''backup_noekeon''' - This file must be '''chmod +755'''.
'''backup_main''' - This file must be '''chmod 700'''.
{{hiddenSourceFile|~/|backup_noekeon|<source lang="bash" class="backup_noekeon">
{{pl2|{{hiddenSourceFile|/home/beq06659/bin/|backup_main|<source lang=bash class="backup_main">
#! /bin/bash
#! /bin/bash


# This script will create a backup of the miki wiki database on noekeon.org
# This script will create a backup of the miki wiki database on noekeon.org
# Backup will be saved in ~/backup


# Helper functions
# Some environment variable
#
BACKUPDIR=~/backup
# These functions assume that the following env. variables are defined:
WIKINAME=www.noekeon.org_miki
#
FSQLNAMEBASE=$BACKUPDIR/wiki-$WIKINAME-$(date '+%Y%m%d')
# THISDAY
FFILENAMEBASE=$BACKUPDIR/wiki-$WIKINAME-$(date '+%Y%m%d')
# THISWEEK
FSQLNAME=${FSQLNAMEBASE}.sql.gz
# THISMONTH
FFILENAME=${FFILENAMEBASE}.tar.gz
# THISYEAR
MAXBACKUPCOUNT=3
# NEXTDAILY
BACKUPRC=~/.mybackuprc
# NEXTWEEKLY
THISWEEK=$(date '+%Y%V')
# NEXTMONTHLY
THISMONTH=$(date '+%Y%m')
# NEXTYEARLY
THISYEAR=$(date '+%Y')
# BACKUPPREFIX
# BACKUPID
# BACKUPEXT
# BACKUPCMD
# BACKUPDIR


if [ -n "$1" ]; then
#Read our resource file if it exists, or create a new one...
BACKUP_DEF_FILE=$1
if [ -a $BACKUPRC ]
then
# ! HOMEDIR must be chmod 755 at most, and $BACKUPRC chmod 644 at most
. $BACKUPRC
else
else
echo "Usage: $0 backup-definition-file"
NEXTWEEKLY=$THISWEEK # Next weekly is this week by default
echo
NEXTMONTHLY=$THISMONTH # Next monthly is this month by default
echo "Format of backup-definition-file: one or more entry as follows, separated by empty lines."
NEXTYEARLY=$THISYEAR # Next yearly is this year by default
echo
echo " BACKUPPREFIX=prefix_of_all_backup_files_for_this_entry"
echo " BACKUPID=some_id_used_to_generate_backup_file_name"
echo " BACKUPEXT=sql.gz"
echo " BACKUPCMD=\"... some command generating the backup data to standard output ... \""
exit 1
fi
fi


if [ "$2" == "--force" ]; then
#Create backup parent directory
FORCE_DAILY=1
mkdir -p $BACKUPDIR
fi

function makedaily()
{
local FSQLNAMENEW=${FSQLNAMEBASE}.daily.sql.gz
echo "Creating backup file ${FSQLNAMENEW}..."
mv $FSQLNAME ${FSQLNAMENEW} # We rename the file!
local FFILENAMENEW=${FFILENAMEBASE}.daily.tar.gz
echo "Creating backup file ${FFILENAMENEW}..."
mv $FFILENAME ${FFILENAMENEW} # We rename the file!
}


function makeweekly()
function makeweekly()
{
{
local FSQLNAMENEW=${FSQLNAMEBASE}.weekly.sql.gz
local FNAMENEW=${FNAMEBASE}.weekly.${BACKUPEXT}
echo "Creating backup file ${FSQLNAMENEW}..."
echo "Creating backup file '${FNAMENEW}'..."
cp $FSQLNAME ${FSQLNAMENEW}
cp $FNAMEDAILY ${FNAMENEW}
NEXTWEEKLY=$((THISWEEK+1)) # This will overflow but 201001 > 200954 so it's ok
local FFILENAMENEW=${FFILENAMEBASE}.weekly.tar.gz
echo "Creating backup file ${FFILENAMENEW}..."
cp $FFILENAME ${FFILENAMENEW}
NEXTWEEKLY=$((NEXTWEEKLY+1)) # This will overflow but 201001 > 200954 so it's ok
}
}


function makemonthly()
function makemonthly()
{
{
local FSQLNAMENEW=${FSQLNAMEBASE}.monthly.sql.gz
local FNAMENEW=${FNAMEBASE}.monthly.${BACKUPEXT}
echo "Creating backup file ${FSQLNAMENEW}..."
echo "Creating backup file '${FNAMENEW}'..."
cp $FSQLNAME ${FSQLNAMENEW}
cp $FNAMEDAILY ${FNAMENEW}
NEXTMONTHLY=$((THISMONTH+1)) # This will overflow but 201001 > 200913 so it's ok
local FFILENAMENEW=${FFILENAMEBASE}.monthly.tar.gz
echo "Creating backup file ${FFILENAMENEW}..."
cp $FFILENAME ${FFILENAMENEW}
NEXTMONTHLY=$((NEXTMONTHLY+1)) # This will overflow but 201001 > 200913 so it's ok
}
}


function makeyearly()
function makeyearly()
{
{
local FSQLNAMENEW=${FSQLNAMEBASE}.yearly.sql.gz
local FNAMENEW=${FNAMEBASE}.yearly.${BACKUPEXT}
echo "Creating backup file ${FSQLNAMENEW}..."
echo "Creating backup file '${FNAMENEW}'..."
cp $FSQLNAME ${FSQLNAMENEW}
cp $FNAMEDAILY ${FNAMENEW}
NEXTYEARLY=$((THISYEAR+1))
local FFILENAMENEW=${FFILENAMEBASE}.yearly.tar.gz
echo "Creating backup file ${FFILENAMENEW}..."
cp $FFILENAME ${FFILENAMENEW}
NEXTYEARLY=$((NEXTYEARLY+1))
}
}

function rmoldest()
{
local SUFFIX=$1
local NBR=$2

#Count files
file_count=$(ls ${BACKUPDIR}/*${SUFFIX}| wc -l)

#Delete files while we have more than $NBR
while [ $file_count -gt $NBR ]
do
#Delete alphabetically oldest file (ls sort by name is default)
rm $(ls ${BACKUPDIR}/*${SUFFIX} | head -n 1)
#Count files again
file_count=$(ls ${BACKUPDIR}/*${SUFFIX}| wc -l)
done
}

function create-backups()
{
# Some environment variables
BACKUPDIR=~/backup
BACKUPRC=~/.backup-${BACKUPID}.${BACKUPEXT}.rc
THISDAY=$(date '+%Y%j')
THISWEEK=$(date '+%Y%V')
THISMONTH=$(date '+%Y%m')
THISYEAR=$(date '+%Y')

#========================================================
# Read resource file
#========================================================
if [ -a $BACKUPRC ]
then
# ! HOMEDIR must be chmod 755 at most, and $BACKUPRC chmod 644 at most
. $BACKUPRC
else
# Resource file doesn't exist, let's use default value
NEXTDAILY=$THISDAY # Next daily is this day by default
NEXTWEEKLY=$THISWEEK # Next weekly is this week by default
NEXTMONTHLY=$THISMONTH # Next monthly is this month by default
NEXTYEARLY=$THISYEAR # Next yearly is this year by default
fi

#We exit immediately if script was already run today...
[ $THISDAY -ge $NEXTDAILY -o -n "$FORCE_DAILY" ] || return 0

#========================================================
# DAILY backup
#========================================================
echo "Creating backup for:"
echo " BACKUPPREFIX=$BACKUPPREFIX"
echo " BACKUPID=$BACKUPID"
echo " BACKUPEXT=$BACKUPEXT"
echo " BACKUPCMD=$BACKUPCMD"

# Some environment variables
FNAMEBASE=${BACKUPDIR}/${BACKUPPREFIX}-$(date '+%Y%m%d')-${BACKUPID}
FNAMEDAILY=${FNAMEBASE}.daily.${BACKUPEXT}
#First we need to restore the ssh-agent context, if any
eval $(/usr/local/bin/ssh-agent-refresh.sh) > /dev/null
#Create backup parent directory
mkdir -p $BACKUPDIR
#We create the daily backup file
echo "Creating the daily backup file '$FNAMEDAILY'..."
eval $BACKUPCMD > "$FNAMEDAILY"
if ! [ $? -eq 0 -a -s "$FNAMEDAILY" ]; then
echo "... Backup failed! Exiting..."
rm "$FNAMEDAILY"
return 1
fi
NEXTDAILY=$((THISDAY+1)) # This will overflow but 2010001 > 2009367 so it's ok
#========================================================
# WEEKLY / MONTHLY / YEARLY backups
#========================================================
#Now, depending on current date, we'll create weekly, monthly or yearly backups...
[ $THISWEEK -ge $NEXTWEEKLY ] && makeweekly
[ $THISMONTH -ge $NEXTMONTHLY ] && makemonthly
[ $THISYEAR -ge $NEXTYEARLY ] && makeyearly
#Now let's delete the oldest backups
rmoldest "-${BACKUPID}.daily.${BACKUPEXT}" "3"
rmoldest "-${BACKUPID}.weekly.${BACKUPEXT}" "3"
rmoldest "-${BACKUPID}.monthly.${BACKUPEXT}" "3"
rmoldest "-${BACKUPID}.yearly.${BACKUPEXT}" "3"
#Finally we update our resource file
umask 022
echo "NEXTDAILY=${NEXTDAILY}" >$BACKUPRC
echo "NEXTWEEKLY=${NEXTWEEKLY}" >>$BACKUPRC
echo "NEXTMONTHLY=${NEXTMONTHLY}" >>$BACKUPRC
echo "NEXTYEARLY=${NEXTYEARLY}" >>$BACKUPRC
}

#Creates the backup for each entry in the backup definition file
while read -u 3 LINE; do
if [ -z "$LINE" ]; then
BACKUPPREFIX=
BACKUPID=
BACKUPEXT=
BACKUPCMD=
else
eval $LINE
[ -n "$BACKUPPREFIX" ] && [ -n "$BACKUPID" ] && [ -n "$BACKUPEXT" ] && [ -n "$BACKUPCMD" ] && create-backups
fi
done 3< $BACKUP_DEF_FILE

</source>
}} }}
'''generate_wiki_config_file_page.sh''' - This file must be '''chmod 700'''.
{{pl2|{{hiddenSourceFile|/home/beq06659/bin/|generate_wiki_config_file_page.sh|<source lang=bash class="generate_wiki_config_file_page.sh">
#! /bin/bash

function wikify_directory()
{
DIRECTORY="$1"
cd $DIRECTORY
echo "=== Directory $DIRECTORY ==="
}

function wikify_config_stdin()
{
local FILE="$1"
local TAGTYPE=source
local LANG="$2"
local DESCRIPTION="$3"
if [ -n "$DESCRIPTION" ]; then
echo -e "'''$FILE''' - $DESCRIPTION"
else
echo "'''$FILE'''"
fi
if [ -n "$LANG" ]; then
echo "{{pl2|{{hiddenSourceFile|$DIRECTORY/|$FILE|<$TAGTYPE lang="$LANG" class=\"$FILE\">"
else
echo "{{pl2|{{hiddenSourceFile|$DIRECTORY/|$FILE|<$TAGTYPE class=\"$FILE\">"
fi
cat
echo "</$TAGTYPE>"
echo "}} }}"
}

function wikify_config_file()
{
cat $DIRECTORY/"$1" | wikify_config_stdin "$1" "$2" "$3"
}

echo "== AndLinux files =="
#echo "<small>Last generated on '''$(date)''' with script '''$0''' on host '''$HOSTNAME'''</small>"
echo "<small>Generated with script '''$0''' on host '''$HOSTNAME'''</small>"
echo

wikify_directory /etc
wikify_config_file fstab text



wikify_directory /etc/privoxy
wikify_config_file set-network-config bash "This file must be '''chmod 755'''. Also the following line must be added to <tt>/etc/sudoers</tt>:
:<code> ALL ALL=(ALL) NOPASSWD: /etc/privoxy/set-network-config </code>"
diff -u config.original config-home | wikify_config_stdin config-home.patch diff
diff -u config-home config-nxp | wikify_config_stdin config-nxp.patch diff
echo "'''config-nxp_auth''' - symlinked to <tt>config-nxp</tt>"
echo
diff -u config-nxp config-nxp_direct | wikify_config_stdin config-nxp_direct.patch diff



wikify_directory /usr/local/bin
wikify_config_file be bash "This script would ideally require to add the following line to <tt>/etc/sudoers</tt>:
:<code>ALL ALL=(ALL) NOPASSWD: /bin/loadkeys</code>"
wikify_config_file ssh-agent-refresh.sh bash



wikify_directory ~
wikify_config_file .bashrc bash "Everything before <tt>#### CUSTOMIZATION</tt> is the original file."
wikify_config_file .dircolors.cfg text
wikify_config_file .inputrc bash
wikify_config_file .profile bash
wikify_config_file .vimrc text



wikify_directory ~/.ssh
wikify_config_file config-home text
wikify_config_file config-nxp text
echo "'''config-nxp_auth''' - symlinked to <tt>config-nxp</tt>"
echo
echo "'''config-nxp_direct''' - symlinked to <tt>config-nxp</tt>"
echo
wikify_config_file proxy.conf-default text
echo "'''proxy.conf-home''' - symlinked to <tt>proxy.conf-default</tt>"
echo
echo "'''proxy.conf-nxp''' - symlinked to <tt>proxy.conf-default</tt>"
echo
wikify_config_file proxy.conf-nxp_auth text
echo "'''config-home-nxp_direct''' - symlinked to <tt>config-default</tt>"
echo


wikify_directory ~/bin
wikify_config_file backup_main bash "This file must be '''chmod 700'''."
wikify_config_file generate_wiki_config_file_page.sh bash "This file must be '''chmod 700'''."
wikify_config_file restore_wiki.sh bash "This file must be '''chmod 700'''."
wikify_config_file set-network.sh bash "This file must be '''chmod 700'''."
wikify_config_file sshproxy bash "This file must be '''chmod 700'''."
wikify_config_file startup.sh bash "This file must be '''chmod 700'''."


wikify_directory ~/etc
wikify_config_file backup_definition text
wikify_config_file crontab bash "Install this file with
:<code>crontab -u beq06659 ~/etc/crontab</code>"
</source>
}} }}
'''restore_wiki.sh''' - This file must be '''chmod 700'''.
{{pl2|{{hiddenSourceFile|/home/beq06659/bin/|restore_wiki.sh|<source lang=bash class="restore_wiki.sh">
#! /bin/bash


function restore_wiki()
{
WIKI_DIR=$1

#
# Restore the wiki backup locally - miki
#
HTML_ROOT=/data/www
SQL_BACKUP=$(ls ~/backup/*-www.noekeon.org_$WIKI_DIR.daily.sql.gz | tail -n 1)
TAR_BACKUP=$(ls ~/backup/*-www.noekeon.org_$WIKI_DIR.daily.tar.gz | tail -n 1)
WIKI_SETTINGS_FNAME="$HTML_ROOT/$WIKI_DIR/LocalSettings.php"

[ -a "$SQL_BACKUP" ] || return 1
[ -a "$TAR_BACKUP" ] || return 1

echo "Restoring TAR backup $TAR_BACKUP..."
echo
sudo rm -r "$HTML_ROOT/$WIKI_DIR"
cd "$HTML_ROOT"
sudo tar -xvzf "$TAR_BACKUP" >/dev/null

sudo chown $USER "$HTML_ROOT/$WIKI_DIR"
sudo chown $USER $WIKI_SETTINGS_FNAME
sed -i -r 's/(wgDBserver.*").*(")/\1localhost\2/' $WIKI_SETTINGS_FNAME

wgDBname=$(<"$WIKI_SETTINGS_FNAME" perl -lne 'print for /wgDBname.*"(.*)"/')
wgDBuser=$(<"$WIKI_SETTINGS_FNAME" perl -lne 'print for /wgDBuser.*"(.*)"/')
wgDBpassword=$(<"$WIKI_SETTINGS_FNAME" perl -lne 'print for /wgDBpassword.*"(.*)"/')

echo "Restoring SQL backup $SQL_BACKUP..."
echo
gunzip < "$SQL_BACKUP" | mysql -u "$wgDBuser" -p"$wgDBpassword" "$wgDBname"

sudo chown -R www-data "$WIKI_DIR"
sudo chgrp -R www-data "$WIKI_DIR"
}

restore_wiki miki
restore_wiki crypto

</source>
}} }}
'''set-network.sh''' - This file must be '''chmod 700'''.
{{pl2|{{hiddenSourceFile|/home/beq06659/bin/|set-network.sh|<source lang=bash class="set-network.sh">
#! /bin/bash

# Exit if no network name given or if no corresponding configuration file
NETWORK=$1
[ -n "$NETWORK" ] || exit 1

# Some logging...
echo -e "\t[$HOSTNAME] Running $(basename $0) '$NETWORK'..." 1>&2

# Checked all needed files are present...
SSH_CONFIG_FILE=~/".ssh/config-$NETWORK"
if ! [ -a $SSH_CONFIG_FILE -a -a /etc/privoxy/config-$NETWORK ]; then
echo "ERROR! I don't know how to reconfigure network '$NETWORK'" 1>&2
exit 255
fi


#First we need to restore the ssh-agent context, if any
#First we need to restore the ssh-agent context, if any
eval $(/usr/local/bin/ssh-agent-refresh.sh) > /dev/null
eval $(/usr/local/bin/ssh-agent-refresh.sh) > /dev/null


# Now let's reconfigure as needed...
#We create the SQL backup file
if [ $NETWORK = "nxp_auth" ]; then
echo "Backing up the MySQL database to '$FSQLNAME'..."
echo -e "\t!!! UPDATE PASSWORD AT ~/.ssh/proxy.conf AND RE-RUN THIS COMMAND !!!"
ssh noekeon '~daemenj/private/backup_wiki ~daemenj/kiwi.noekeon.org/miki/LocalSettings.php' > "$FSQLNAME"
fi


~/bin/sshproxy stop
#We create the wiki directory backup file
sleep 1
echo "Backing up the files & extensions to '$FFILENAME'..."
ln -sf $SSH_CONFIG_FILE ~/.ssh/config
ssh noekeon 'cd ~daemenj/kiwi.noekeon.org; /usr/bin/nice -n 19 tar -cz miki/' > "$FFILENAME"
sudo /etc/privoxy/set-network-config "$NETWORK"
~/bin/sshproxy start
</source>
}} }}
'''sshproxy''' - This file must be '''chmod 700'''.
{{pl2|{{hiddenSourceFile|/home/beq06659/bin/|sshproxy|<source lang=bash class="sshproxy">
#! /bin/sh
#
# sshproxy Setup ssh port forwarding (imap) and SOCKS 5 proxy
# ssh connection is made persistent thanks to autossh
#
# Author: Michaël Peeters
#
# Prerequisite: ssh-agent must be running in background (autossh won't ask for password)
#
# chkconfig: 235 70 40
# description: sshproxy startup script.


SUBSYS=sshproxy
#Now, depending on current date, we'll create daily, weekly, monthly or yearly backups...
TARGET=/usr/bin/autossh
[ $THISWEEK -ge $NEXTWEEKLY ] && makeweekly
BINDADDRESS=0.0.0.0 #0.0.0.0 external connection allowed; 127.0.0.1 only connection from localhost allowed
[ $THISMONTH -ge $NEXTMONTHLY ] && makemonthly
[ $THISYEAR -ge $NEXTYEARLY ] && makeyearly
makedaily


# Source function library.
#. /etc/rc.d/init.d/functions


# Some macros to make the below more readable
#Now let's delete the oldest backups
#PID_FILE=/var/run/$SUBSYS.pid
#LOCK_FILE=/var/lock/subsys/$SUBSYS
PID_FILE=~/.$SUBSYS.pid
LOCK_FILE=~/.$SUBSYS.lock


echo_success()
function rmoldest()
{
{
echo "\t\t[OK ]"
local EXT=$1
}
local TYPE=$2
local NBR=$3


echo_failure()
#Count files
{
file_count=$(ls $BACKUPDIR/*.${TYPE}${EXT}| wc -l)
echo "\t\t[FAILED]"
}



#Delete files while we have more than $NBR
start()
while [ $file_count -gt $NBR ]
{
do
echo -n "Starting $SUBSYS:"
#Delete alphabetically oldest file (ls sort by name is default)

rm $(ls $BACKUPDIR/*.${TYPE}${EXT} | head -n 1)
if [ -f $LOCK_FILE ]; then
#Count files again
RETVAL=1
file_count=$(ls $BACKUPDIR/*.${TYPE}${EXT}| wc -l)
else
done
export AUTOSSH_PIDFILE=$PID_FILE
export AUTOSSH_POLL=300
/usr/bin/autossh -M 0 -f -N -n -q -L ${BINDADDRESS}:9025:smtp.priorweb.be:25 -L ${BINDADDRESS}:9143:mail.priorweb.be:143 -L ${BINDADDRESS}:9026:mail.altranweb.be:25 -L ${BINDADDRESS}:9144:mail.altranweb.be:143 -D ${BINDADDRESS}:1080 noekeon
RETVAL=$?
fi

if [ $RETVAL -eq 0 ]; then
touch $LOCK_FILE
echo_success
else
echo_failure
fi
}
}


stop()
rmoldest ".sql.gz" "daily" "3"
{
rmoldest ".tar.gz" "daily" "3"
# don't delete lock file while pid file not deleted
rmoldest ".sql.gz" "weekly" "3"
# don't delete pidfile while process is running
rmoldest ".tar.gz" "weekly" "3"

rmoldest ".sql.gz" "monthly" "3"
echo -n "Stopping $SUBSYS:"
rmoldest ".tar.gz" "monthly" "3"

rmoldest ".sql.gz" "yearly" "3"
status
rmoldest ".tar.gz" "yearly" "3"
case "$RETVAL" in
0)
( kill -TERM $pid || kill -KILL $pid ) >/dev/null
RETVAL=$?
;;
1) RETVAL=0;;
2) RETVAL=0;;
*) ;;
esac

if [ $RETVAL -eq 0 ]; then
rm -f $LOCK_FILE
rm -f $PID_FILE
echo_success
else
echo_failure
fi
}

status()
{
# no lockfile --> (3) Not started.
# lockfile present, no pidfile --> (2) Started, but terminated
# lockfile & pidfile present, no process --> (1) Started, but killed
# lockfile, pidfile & process present --> (0) Started.
# -- note this is opposite order compared to status function, but support multiple autossh running concurrently

unset pid
read pid 2>/dev/null < $PID_FILE

if [ ! -f $LOCK_FILE ]; then
# /var/lock/subsys/$SUBSYS doesn't exist
RETVAL=3
elif [ "$pid" = "" ] ; then
# lock file exists, but file "/var/run/*.pid" doesn't exist
RETVAL=2
elif ( ! ps -p $pid | grep -q $pid ) ; then
# Both files exist but process is not running anymore...
RETVAL=1
else
# Everything is fine
RETVAL=0
fi
}

reload()
{
read pid 2>/dev/null < $PID_FILE
kill -HUP $pid
RETVAL=$?
}

# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
case "$RETVAL" in
0)
echo -n "$SUBSYS (pid $pid) is running"
if ( ps -fu $USER | grep -q " $pid .*/ssh " ) ; then echo " and connection is alive..."; else echo " but connection is dead..."; fi
;;
1)
echo "$SUBSYS dead but pid file exists"
;;
2)
echo "$SUBSYS dead but subsys locked..."
;;
3)
echo "$SUBSYS is stopped"
;;
esac
;;
reload)
reload
;;
restart)
stop
start
;;
*)
echo "Usage: $0 {start|stop|status|reload|restart}"
RETVAL=1
esac

exit $RETVAL


#Finally we update our resource file
umask 022
echo "NEXTWEEKLY=${NEXTWEEKLY}" >$BACKUPRC
echo "NEXTMONTHLY=${NEXTMONTHLY}" >>$BACKUPRC
echo "NEXTYEARLY=${NEXTYEARLY}" >>$BACKUPRC
</source>
</source>
}}
}} }}
'''startup.sh''' - This file must be '''chmod 700'''.
{{pl2|{{hiddenSourceFile|/home/beq06659/bin/|startup.sh|<source lang=bash class="startup.sh">
#! /bin/bash

# Start ssh-agent and add key
##############################
eval `ssh-agent-refresh.sh` >/dev/null
if ( ! ( ssh-add -L | grep -q $USER ) ); then ssh-add; fi

# Start ssh-proxy - USELESS - ALWAYS FOLLOWED BY A CALL TO ~/bin/network-* which restarts sshproxy anyway
##############################
#~/bin/sshproxy stop >/dev/null
#~/bin/sshproxy start

</source>
}} }}
=== Directory /home/beq06659/etc ===
'''backup_definition'''
{{pl2|{{hiddenSourceFile|/home/beq06659/etc/|backup_definition|<source lang=text class="backup_definition">
BACKUPPREFIX=wiki
BACKUPID=www.noekeon.org_miki
BACKUPEXT=sql.gz
BACKUPCMD="ssh noekeon '~daemenj/private/backup_wiki ~daemenj/kiwi.noekeon.org/miki/LocalSettings.php'"

BACKUPPREFIX=wiki
BACKUPID=www.noekeon.org_miki
BACKUPEXT=tar.gz
BACKUPCMD="ssh noekeon 'cd ~daemenj/kiwi.noekeon.org; /usr/bin/nice -n 19 tar -cz miki/'"

BACKUPPREFIX=wiki
BACKUPID=www.noekeon.org_crypto
BACKUPEXT=sql.gz
BACKUPCMD="ssh noekeon '~daemenj/private/backup_wiki ~daemenj/kiwi.noekeon.org/crypto/LocalSettings.php'"

BACKUPPREFIX=wiki
BACKUPID=www.noekeon.org_crypto
BACKUPEXT=tar.gz
BACKUPCMD="ssh noekeon 'cd ~daemenj/kiwi.noekeon.org; /usr/bin/nice -n 19 tar -cz crypto/'"
</source>
}} }}
'''crontab''' - Install this file with
:<code>crontab -u beq06659 ~/etc/crontab</code>
{{pl2|{{hiddenSourceFile|/home/beq06659/etc/|crontab|<source lang=bash class="crontab">
# Crontab for user beq06659
#
# Install this crontab with
#
# crontab -u beq06659 crontab
#
# Use /bin/bash to run commands, instead of the default /bin/sh
SHELL=/bin/bash
# Define variable USER because we need it in our job scripts
USER=beq06659
# Mail any output to 'beq06659', no matter whose crontab this is
MAILTO=beq06659
#
#
# m h dom mon dow command (dow=0|7 is sunday)
37 * * * * ~beq06659/bin/backup_main ~beq06659/etc/backup_definition

</source>
}} }}

Latest revision as of 11:21, 26 April 2013

These are the configuration files on Configuration NXP Dell Latitude D620 - AndLinux.

Windows Host files

settings.txt

hosts

AndLinux files

Generated with script /home/beq06659/bin/generate_wiki_config_file_page.sh on host andLinux

Directory /etc

fstab

Directory /etc/privoxy

set-network-config - This file must be chmod 755. Also the following line must be added to /etc/sudoers:

ALL ALL=(ALL) NOPASSWD: /etc/privoxy/set-network-config

config-home.patch

config-nxp.patch

config-nxp_auth - symlinked to config-nxp

config-nxp_direct.patch

Directory /usr/local/bin

be - This script would ideally require to add the following line to /etc/sudoers:

ALL ALL=(ALL) NOPASSWD: /bin/loadkeys

ssh-agent-refresh.sh

Directory /home/beq06659

.bashrc - Everything before #### CUSTOMIZATION is the original file.

.dircolors.cfg

.inputrc

.profile

.vimrc

Directory /home/beq06659/.ssh

config-home

config-nxp

config-nxp_auth - symlinked to config-nxp

config-nxp_direct - symlinked to config-nxp

proxy.conf-default

proxy.conf-home - symlinked to proxy.conf-default

proxy.conf-nxp - symlinked to proxy.conf-default

proxy.conf-nxp_auth

config-home-nxp_direct - symlinked to config-default

Directory /home/beq06659/bin

backup_main - This file must be chmod 700.

generate_wiki_config_file_page.sh - This file must be chmod 700.

restore_wiki.sh - This file must be chmod 700.

set-network.sh - This file must be chmod 700.

sshproxy - This file must be chmod 700.

startup.sh - This file must be chmod 700.

Directory /home/beq06659/etc

backup_definition

crontab - Install this file with

crontab -u beq06659 ~/etc/crontab