Variables: Difference between revisions

From FAIWiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(101 intermediate revisions by 6 users not shown)
Line 1: Line 1:
The following Variables do exist in FAI (example values included):
The following Variables do exist in FAI (example values included):


{|border=1
Please do not edit that much, without contacting Mrfai. Currently it's
!name!!internal!!example value!!created by!!used by !!comments
my private list of variable and comments.
 
type: int = internal use only; CS used in config space (often defined by *.var)
 
Which variables are needed inside the nfsroot, so the install clients
can use them? (maybe write them into fai-client.var or
nfsroot.var). Then do not copy fai.conf into the nfsroot any more.
 
{|border=1 class="wikitable sortable"
!name!!type!!default value!!example value!!created by!!used by !!comments
|-
|-
|BOOT_IMAGE || int ||vmlinux-install || || || may be unset
| -- || |||| || || ||
|-
|-
| || || || || ||
|FAI_CONFIG_SRC||||||nfs://faiserver/srv/fai/config||different sources||get-config-dir|| fai-chboot -u, fai -s
|-
|-
|BOOT_PARTITION||||/dev/sda1|| setup_harddisks ||grub/menu.lst/postinst||
|FAI_ACTION||||||install, sysinfo, softupdate, inventory || fai-chboot via kernel command line||save_log_local() save_log_remote_shell() save_log_remote() get_bootp_info() task_action(), fai-savelog-ftp, updatebase||  
|-
|-
|BROADCAST||||192.168.0.127|| get-boot-info||scripts/FAIBASE/30-interface||
|FAI_SENDID||||||mac|| kernel command line, fai-chboot ||task_confidir|| ID which is sent to fai monitor: host, mac or pxe
|-
|-
|COLOR_FAI_LOGO||int ||1|||| prcopyleft()||Does not work for installation on x86.
| -- || |||| || || ||
|-
|-
|DEBIAN_FRONTEND||int||noninteractive||||dpkg -i||
|FAI||||||/var/lib/fai/config||[[fai.conf]]||''almost every function''||location of the CS on the client||
|-
|-
|DNSDOMAIN||||workgroup.de||||task_setup()||just used because cfengine can't use DOMAIN
|LOGUSER|||||| fai ||[[fai.conf]] ||[[fai-setup]], fai-savelog, fai-savelog-ftp,task_chboot()||empty LOGUSER will disable logging
|-
|-
|DNSSRVS||||192.168.1.16||dhclient-perl ||create_resolv_conf||
|NFSROOT||||||/srv/fai/nfsroot/||[[nfsroot.conf]] || [[fai-setup]], [[fai-make-nfsroot]], [[fai-cd]], [[fai-mirror]], [[make-fai-bootfloppy]] || not needed in $NFSROOT, only needed on the install server
|-
|-
|DNSSRVS_1||||192.168.1.16|||||| first element of DNSSRV
|TFTPROOT||||||/srv/tftp/fai||[[nfsroot.conf]] || [[fai-make-nfsroot]], [[fai-chboot]] || not needed in $NFSROOT, only needed on the install server
|-
|-
|DOMAIN||||workgroup.de||||task_setup() task_prepareapt()||
|FAI_CONFIGDIR||||||/srv/fai/config||[[nfsroot.conf]]||*.postinst, [[fai-setup]], [[fai-cd]], [[fai-mirror]], [[fai-make-nfsroot]] ||configs space on the server||
|-
|-
|DO_INIT_TASKS||int||1||||fai, task_confdir(), prcopyleft()|| 1 if
|FAI_ALLOW_UNSIGNED||CS|||| 1 ||class/*.var||prepareapt||allow installation of packages from unsigned repositories
doing net installation
|-
|-
|FAI||||/fai||||almost every function||
|FAI_BASEFILEURL||CS||||https://fai-project.org/download/basefiles/ ||class/*.var|| task extrbase||download base.tar.xz using a class name via HTTP or FTP
|-
|-
|FAI_ACTION||||install,sysinfo,softupdate || fai-chboot via kernel command line||save_log_local() save_log_remote_shell() save_log_remote() get_bootp_info() task_action(), fai-savelog-ftp, updatebase||  
|LOGDIR||||||/tmp/fai|| fai ||''very often''|| mostly set to /var/log/fai/$HOSTNAME/....||
|-
|-
|FAI_CONSOLEFONT|||| ||class/*.var || ||
|LOGPASSWD||CS|||| || class/*.var ||fai-savelog-ftp|| moved from fai.conf to CS
|-
|-
|FAI_FLAGS||||'createvt sshd'|| kernel command line, fai-chboot ||define_fai_flags()||
|LOGREMOTEDIR||CS||||upload||  class/*.var||fai-savelog, fai-savelog-ftp || moved from fai.conf to CS
|-
|-
|FAI_KEYMAP||||de||class/*.var||||
|LOGSERVER||CS|||| || class/*.var || fai-savelog, fai-savelog-ftp|| default: LOGSERVER=$SERVER, moved from fai.conf to CS
|-
|-
|FAI_LOCATION||||192.168.0.8:/usr/share/fai||||get_bootp_info() get_fai_dir() get_fai_cvs()||
|MNTPOINT||||||/media/mirror||||[[fai-make-nfsroot]], [[fai-mirror]], task_mirror()|| influences entries in sources.list, may become a fixed path
|-
|-
|FAI_LOGPROTO|||| ||fai.conf||save_log_remote()||can be removed from fai.conf, should be defined in class/*.var
|STOP_ON_ERROR|||||| 99999 || class/*.var || task_error() || errors greater STOP_ON_ERROR will cause fai to stop the installation
|-
|-
|FAI_REMOTECP||||scp||||save_log_remote_shell()||
|SERVERINTERFACE||||||eth0|| [[nfsroot.conf]]|| [[fai-setup]]|| used to specify interface when building exportfs line, only needed when install server has multiple interfaces
|-
|-
|FAI_REMOTESH||||ssh||||save_log_remote_shell() task_chboot()||
|FAI_DEBMIRROR|||||| $mirrorhost:/srv/debmirror||[[fai.conf]]|| || move to nfsroot.conf, but needed in $NFSROOT/../fai.conf
|-
|-
|FAI_ROOT||||/tmp/target||||||
|monserver|| ||||kueppers ||task_confdir ||sendmon() || name of host where faimond is running. default: monserver=$SERVER, but must be set before CS is available (e.g in fai.conf, kernel command line)
|-
|-
|FAI_RUNDATE||int||20060123_163824||||fai-savelog||
|FAI_MONITOR_PORT|| ||||4711 ||task_confdir ||sendmon() || port of the fai-monitor, must be set before CS is available (e.g in fai.conf inside the nfsroot or on the kernel command line)
|-
|-
|FAI_VERSION||||'FAI 2.8.4, 25 May 2005'||||||
| duration || int |||| || || if set to 1 every task prints its execution time||
|-
|-
|FUNCNAME||||task_defvar||||||
| -- || || || || ||
|-
|-
|GATEWAYS||||192.168.0.1||||||
|target||||||/target|| || || same as $FAI_ROOT
|-
|-
|GATEWAYS_1||||192.168.0.1||||||
|ROOTCMD||||||'chroot /tmp/target'||||''almost every script''||
|-
|-
|HOSTNAME||||192.168.0.14||||||
|FAI_RUNDIR||||||cwd where fai was called||fai||scripts/LAST/50-misc||used for copying the kernel and initrd to the outside world
|-
|-
|HOSTTYPE||||x86_64||||||
|CONSOLEFONT||CS|||| ||class/*.var || ||
|-
|-
|INSTALL||||all-install||||||
|KEYMAP||CS||||de||class/*.var||||
|-
|-
|IPADDR||||192.168.0.14||||||
|SS_IGNORE_VG|| ||||vg1 vg2|| setup-storage ||used by fai-disimage||
|-
|-
|LOGDIR||||/tmp/fai||||||
|BOOT_PARTITION||CS||||/dev/sda1|| setup-storage ||grub/menu.lst/postinst||
|-
|-
|LOGPASSWD|||| ||||||
|ROOT_PARTITION||CS||||/dev/sda1||setup-storage ||LILO/20-create-liloconf||
|-
|-
|LOGREMOTEDIR||||upload||||||
|UTC||CS||||yes||class/*.var || example/simple/scripts||
|-
|-
|LOGSERVER|||| ||||||
|TIMEZONE||CS||||Europe/Berlin|| class/*.var || example/simple/scripts ||
|-
|-
|LOGUSER|||| ||||||
|MODULESLIST||CS||||psmouse||class/*.var ||scripts/FAIBASE/10-misc||
|-
|-
|MACHTYPE||||x86_64-pc-linux-gnu||||||
|MAXPACKAGES||CS||||300||||fai-mirror, install_packages || limit the number of packages installed in one run
|-
|-
|MNTPOINT||||/mnt2||||||
|FAI_DISABLE_PACKAGE_NAME_CHECK||CS|||||||| install_packages || does the same as -N
|-
|-
|NETMASK||||255.255.255.128||||||
|FAI_BACKUPDIR||CS||||||class/*.var ||[[fcopy]]|| directory used by fcopy for backup files
|-
|-
|NETWORK||||192.168.0.0||||||
|FAI_RAMDISKS||CS||||$target/var/lib/dpkg||class/*.var ||mkramdisk|| a space-separated list of a directories that gets a ramdisks, use NONE to disable this feature
|-
|-
|OSTYPE||||linux-gnu||||||
| -- || |||| || || ||
|-
|-
|OS_TYPE||||linux|| || ||
|-
|-
|PATH||||/usr/local/sbin:/usr/local/bin:||||||
|FAI_ETC_DIR ||int||/etc/fai|||/etc/fai||fai -C|| [[fai-make-nfsroot]], [[fai-mirror]], [[fai-cd]], [[fai]] via fai_init() -> /usr/lib/fai/subroutines (task_debconf, task_repository) ||
|-
|-
|ROOTCMD||||'chroot /tmp/target'||||||
|FAI_ROOT||const||||/target||bin/fai||''almost every script''|| directory where the new system will be installed to, $target has the same value
|-
|-
|ROOT_PARTITION||||/dev/sda1||||||
|APTPROXY|| ||||http://127.0.0.1:3142||set by admin on cmdline or CS ||[[fai-make-nfsroot]], updatebase.DEBIAN||
|-
|-
|SERVERINTERFACE||||eth0||||||
|fai_rundate||int||||20060123_163824||task_setup()||fai-savelog||
|-
|-
|UTC||||yes||||||
|FAI_VERSION||const||||FAI 5.3||||[[fai]], prcopyleft()||
|-
|-
|addpackages|||| || || ||removed in ???|
|HOST|||||| demohost || given on kernel command line || || can redefine host name
|-
|-
|HOST|||| demohost || || || set host name|
|cfclasses||int||||DEFAULT.LINUX.LAST||task_defclass()||cfagent scripts||  
|-
|-
|backup||||true||||||
|classes||int||||DEFAULT LINUX LAST||task_defclass()||''almost every script''||
|-
|-
|bserver||||watchtower||||||
|disklist||int||||sda||set_disk_info() ||setup-storage, [[fai-mount-disk]]||
|-
|-
|cfclasses||||DEFAULT.AMD64.LINUX.LAST||||||
|faimond||int ||||0|| || ||determines if faimond is running
|-
|-
|classes||||DEFAULT AMD64 LINUX LAST||||||
|ip||int||||dhcp||fai-chboot via kernel append parameter||get-boot-info||
|-
|-
|console||||tty0||||||
|HOSTNAME||||||demohost||||''very often''|| may the hostname change during installtion? Is the hostname FQDN in some cases? numeric hostname if host-decl-name off in dhcpd.conf
|-
|-
|createvt||||1||||||
|HOSTTYPE||int||||x86_64||bash variable|| prcopyleft ||
|-
|-
|device_size||||'sda 71687372'||||||
|netdevices||int ||||eth0|| get-boot-info||get-boot-info, task_sysinfo, dhclient-fai-script||  
|-
|-
|disklist||||sda||||||
|netdevices_all||int ||||eth0 eth1 || get-boot-info||get-boot-info, task_sysinfo||
|-
|-
|diskvar||||/tmp/fai/disk_var.sh||||||
|netdevices_up||int||||eth0|| get-boot-info||get-boot-info, task_sysinfo||
|-
|-
|installserver||||0|||only used for building FAI_LOCATION||unset very early||can be removed
|nfsroot||int||||/srv/fai/nfsroot/||fai-chboot via kernel append parameter||kernel ||may contain server's IP address, may contain nfs parameters like: v2,rsize=32768,wsize=32768
|-
|-
|faimond||||0||||||
|renewclass|| int||||boolean|| || task_defclass()|| on softupdate recalculate the list of classes, unset after use
|-
|-
|files||||/fai/files||||||
|cmdlineclasses|| |||| || fai -c || task_defclass()||  
|-
|-
|force||||true||||||
|romountopt||int||||-o async,noatime,ro|| || || unset after use
|-
|-
|fstab||int||fstab||was used for solaris, fstab -> vfstab||can be removed
|sendhostname||int |||| || task_confdir()||sendmon() ||client's hostname, do not replace with $HOSTNAME, since HOSTNAME may change during installation
|-
|-
|ip||dhcp||||||||
|flag_sshd||int ||||boolean|| define_fai_flags() || ||
|-
|-
|liloappend|||| || || ||
|flag_createvt||int||||boolean||define_fai_flags()||||
|-
|-
|lpipe||||/tmp/fai/logfifo||||||
|task_error||int||||integer|| ||''every task can set it''|| formerly $terror
|-
|-
|mirrorhost||||192.168.0.8||||||
|stamp||int ||||..._IN_PROGRESS|| || ||  
|-
|-
|moduleslist||||psmouse||class/*.var ||scripts/FAIBASE/10-misc||
|DEBIAN_FRONTEND||int||||noninteractive||||dpkg -i||
|-
|-
|monserver|||| ||||||
|do_init_tasks||int|||| boolean ||||[[fai]], task_confdir(), prcopyleft()||1 if doing net or CD installations
|-
|-
|netdevices||||eth0||||||
| -- || |||| || || ||
|-
|-
|netdevices_all||||eth0 eth1 ath0||||||
|-
|-
|netdevices_up||||eth0||||||
|BROADCAST||||||192.168.0.127|| get-boot-info||scripts/FAIBASE/30-interface||
|-
|-
|nfsroot||||192.168.0.12:/usr/lib/fai/nfsroot-amd64/||||||
|DNSSRVS||||||192.168.1.16||get-boot-info ||create_resolv_conf||
|-
|-
|noexec||||off|| || ||
|DNSSRVS_1||||||192.168.1.16||get-boot-info|||| first element of DNSSRV
|-
|-
|rcslog||int||$LOGDIR/fai.log||||||
|DOMAIN||||||workgroup.de||get-boot-info||task_setup() task_prepareapt()||
|-
|-
|renewclass||||1|| || ||
|NETMASK||||||255.255.255.128||get-boot-info||||
|-
|-
|romountopt||int||'-o async,noatime,nolock,ro,actimeo 1800'|| || ||
|NETWORK||||||192.168.0.0||get-boot-info||||
|-
|-
|rundir||||/var/run/fai|| || ||
|IPADDR||||||192.168.0.14||get-boot-info||||
|-
|-
|sndhostname|| || || || ||
|GATEWAYS||||||192.168.0.1||get-boot-info||||
|-
|-
|sshd|| ||1|| define_fai_flags() || ||
|GATEWAYS_1||||||192.168.0.1||get-boot-info||||
|-
|-
|stamp||int ||/var/run/fai/FAI_INSTALLATION_IN_PROGRESS|| || ||
|SERVER||||||kueppers||get-boot-info || ||  
|-
|-
|target||||/tmp/target|| || || same as $FAI_ROOT
|}
 
 
Variables that are unused since 4.0 versions of FAI:
 
{|border="1" class="wikitable sortable"
!name!!type!!example value!!created by!!used by !!comments
|-
|FAI_NORAMDISK||CS||||class/*.var ||mkramdisk|| if set to 1, no ramdisk will be created
|-
|-
|terror||int||0|| ||every task can set it ||
|USE_SETUP_STORAGE||CS||1||class/*.var |||| when set to 1, FAI will use the new partition tool setup-storage
|-
|-
|time_zone||||Europe/Berlin|| class/*.var || ||
|}
|}
== Useful oneliners ==
find all files not under a ".svn" directory and replace the string '$diskvar' with '$LOGDIR/diskvar'
Test:
find -name '.svn' -prune -o -type f -exec perl -n -e 's/\$diskvar/\$LOGDIR\/diskvar/g && print' {} \;
find -name '.svn' -prune -o -type f -exec perl -p -e 's/\$diskvar/\$LOGDIR\/diskvar/g' {} \; | less
Really replace: ( same, but "i" added )
find -name '.svn' -prune -o -type f -exec perl -pi -e 's/\$diskvar/\$LOGDIR\/diskvar/g' {} \;
== See also ==
* [https://lists.uni-koeln.de/pipermail/linux-fai/2010-February/007684.html "Re: How to use task_error ? (Writing pretty hooks)"] (discussion on linux-fai mailing list, 04-Feb-2010)
[[Category:Development]]
[[Category:User Manual]]
[[Category:Tutorial]]

Latest revision as of 09:55, 12 February 2020

The following Variables do exist in FAI (example values included):

Please do not edit that much, without contacting Mrfai. Currently it's my private list of variable and comments.

type: int = internal use only; CS used in config space (often defined by *.var)

Which variables are needed inside the nfsroot, so the install clients can use them? (maybe write them into fai-client.var or nfsroot.var). Then do not copy fai.conf into the nfsroot any more.

name type default value example value created by used by comments
--
FAI_CONFIG_SRC nfs://faiserver/srv/fai/config different sources get-config-dir fai-chboot -u, fai -s
FAI_ACTION install, sysinfo, softupdate, inventory fai-chboot via kernel command line save_log_local() save_log_remote_shell() save_log_remote() get_bootp_info() task_action(), fai-savelog-ftp, updatebase
FAI_SENDID mac kernel command line, fai-chboot task_confidir ID which is sent to fai monitor: host, mac or pxe
--
FAI /var/lib/fai/config fai.conf almost every function location of the CS on the client
LOGUSER fai fai.conf fai-setup, fai-savelog, fai-savelog-ftp,task_chboot() empty LOGUSER will disable logging
NFSROOT /srv/fai/nfsroot/ nfsroot.conf fai-setup, fai-make-nfsroot, fai-cd, fai-mirror, make-fai-bootfloppy not needed in $NFSROOT, only needed on the install server
TFTPROOT /srv/tftp/fai nfsroot.conf fai-make-nfsroot, fai-chboot not needed in $NFSROOT, only needed on the install server
FAI_CONFIGDIR /srv/fai/config nfsroot.conf *.postinst, fai-setup, fai-cd, fai-mirror, fai-make-nfsroot configs space on the server
FAI_ALLOW_UNSIGNED CS 1 class/*.var prepareapt allow installation of packages from unsigned repositories
FAI_BASEFILEURL CS https://fai-project.org/download/basefiles/ class/*.var task extrbase download base.tar.xz using a class name via HTTP or FTP
LOGDIR /tmp/fai fai very often mostly set to /var/log/fai/$HOSTNAME/....
LOGPASSWD CS class/*.var fai-savelog-ftp moved from fai.conf to CS
LOGREMOTEDIR CS upload class/*.var fai-savelog, fai-savelog-ftp moved from fai.conf to CS
LOGSERVER CS class/*.var fai-savelog, fai-savelog-ftp default: LOGSERVER=$SERVER, moved from fai.conf to CS
MNTPOINT /media/mirror fai-make-nfsroot, fai-mirror, task_mirror() influences entries in sources.list, may become a fixed path
STOP_ON_ERROR 99999 class/*.var task_error() errors greater STOP_ON_ERROR will cause fai to stop the installation
SERVERINTERFACE eth0 nfsroot.conf fai-setup used to specify interface when building exportfs line, only needed when install server has multiple interfaces
FAI_DEBMIRROR $mirrorhost:/srv/debmirror fai.conf move to nfsroot.conf, but needed in $NFSROOT/../fai.conf
monserver kueppers task_confdir sendmon() name of host where faimond is running. default: monserver=$SERVER, but must be set before CS is available (e.g in fai.conf, kernel command line)
FAI_MONITOR_PORT 4711 task_confdir sendmon() port of the fai-monitor, must be set before CS is available (e.g in fai.conf inside the nfsroot or on the kernel command line)
duration int if set to 1 every task prints its execution time
--
target /target same as $FAI_ROOT
ROOTCMD 'chroot /tmp/target' almost every script
FAI_RUNDIR cwd where fai was called fai scripts/LAST/50-misc used for copying the kernel and initrd to the outside world
CONSOLEFONT CS class/*.var
KEYMAP CS de class/*.var
SS_IGNORE_VG vg1 vg2 setup-storage used by fai-disimage
BOOT_PARTITION CS /dev/sda1 setup-storage grub/menu.lst/postinst
ROOT_PARTITION CS /dev/sda1 setup-storage LILO/20-create-liloconf
UTC CS yes class/*.var example/simple/scripts
TIMEZONE CS Europe/Berlin class/*.var example/simple/scripts
MODULESLIST CS psmouse class/*.var scripts/FAIBASE/10-misc
MAXPACKAGES CS 300 fai-mirror, install_packages limit the number of packages installed in one run
FAI_DISABLE_PACKAGE_NAME_CHECK CS install_packages does the same as -N
FAI_BACKUPDIR CS class/*.var fcopy directory used by fcopy for backup files
FAI_RAMDISKS CS $target/var/lib/dpkg class/*.var mkramdisk a space-separated list of a directories that gets a ramdisks, use NONE to disable this feature
--
FAI_ETC_DIR int /etc/fai /etc/fai fai -C fai-make-nfsroot, fai-mirror, fai-cd, fai via fai_init() -> /usr/lib/fai/subroutines (task_debconf, task_repository)
FAI_ROOT const /target bin/fai almost every script directory where the new system will be installed to, $target has the same value
APTPROXY http://127.0.0.1:3142 set by admin on cmdline or CS fai-make-nfsroot, updatebase.DEBIAN
fai_rundate int 20060123_163824 task_setup() fai-savelog
FAI_VERSION const FAI 5.3 fai, prcopyleft()
HOST demohost given on kernel command line can redefine host name
cfclasses int DEFAULT.LINUX.LAST task_defclass() cfagent scripts
classes int DEFAULT LINUX LAST task_defclass() almost every script
disklist int sda set_disk_info() setup-storage, fai-mount-disk
faimond int 0 determines if faimond is running
ip int dhcp fai-chboot via kernel append parameter get-boot-info
HOSTNAME demohost very often may the hostname change during installtion? Is the hostname FQDN in some cases? numeric hostname if host-decl-name off in dhcpd.conf
HOSTTYPE int x86_64 bash variable prcopyleft
netdevices int eth0 get-boot-info get-boot-info, task_sysinfo, dhclient-fai-script
netdevices_all int eth0 eth1 get-boot-info get-boot-info, task_sysinfo
netdevices_up int eth0 get-boot-info get-boot-info, task_sysinfo
nfsroot int /srv/fai/nfsroot/ fai-chboot via kernel append parameter kernel may contain server's IP address, may contain nfs parameters like: v2,rsize=32768,wsize=32768
renewclass int boolean task_defclass() on softupdate recalculate the list of classes, unset after use
cmdlineclasses fai -c task_defclass()
romountopt int -o async,noatime,ro unset after use
sendhostname int task_confdir() sendmon() client's hostname, do not replace with $HOSTNAME, since HOSTNAME may change during installation
flag_sshd int boolean define_fai_flags()
flag_createvt int boolean define_fai_flags()
task_error int integer every task can set it formerly $terror
stamp int ..._IN_PROGRESS
DEBIAN_FRONTEND int noninteractive dpkg -i
do_init_tasks int boolean fai, task_confdir(), prcopyleft() 1 if doing net or CD installations
--
BROADCAST 192.168.0.127 get-boot-info scripts/FAIBASE/30-interface
DNSSRVS 192.168.1.16 get-boot-info create_resolv_conf
DNSSRVS_1 192.168.1.16 get-boot-info first element of DNSSRV
DOMAIN workgroup.de get-boot-info task_setup() task_prepareapt()
NETMASK 255.255.255.128 get-boot-info
NETWORK 192.168.0.0 get-boot-info
IPADDR 192.168.0.14 get-boot-info
GATEWAYS 192.168.0.1 get-boot-info
GATEWAYS_1 192.168.0.1 get-boot-info
SERVER kueppers get-boot-info


Variables that are unused since 4.0 versions of FAI:

name type example value created by used by comments
FAI_NORAMDISK CS class/*.var mkramdisk if set to 1, no ramdisk will be created
USE_SETUP_STORAGE CS 1 class/*.var when set to 1, FAI will use the new partition tool setup-storage


Useful oneliners

find all files not under a ".svn" directory and replace the string '$diskvar' with '$LOGDIR/diskvar'

Test:

find -name '.svn' -prune -o -type f -exec perl -n -e 's/\$diskvar/\$LOGDIR\/diskvar/g && print' {} \;
find -name '.svn' -prune -o -type f -exec perl -p -e 's/\$diskvar/\$LOGDIR\/diskvar/g' {} \; | less

Really replace: ( same, but "i" added )

find -name '.svn' -prune -o -type f -exec perl -pi -e 's/\$diskvar/\$LOGDIR\/diskvar/g' {} \; 

See also