Variables: Difference between revisions
Jump to navigation
Jump to search
(remove device_size) |
No edit summary |
||
(25 intermediate revisions by 4 users not shown) | |||
Line 10: | Line 10: | ||
nfsroot.var). Then do not copy fai.conf into the nfsroot any more. | nfsroot.var). Then do not copy fai.conf into the nfsroot any more. | ||
{|border=1 class="wikitable sortable"!name!!type!!example value!!created by!!used by !!comments | {|border=1 class="wikitable sortable" | ||
!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 | |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 | |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 | |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_sshd||int ||||boolean|| define_fai_flags() || || | ||
|- | |- | ||
|flag_createvt||int||boolean||define_fai_flags()|||| | |flag_createvt||int||||boolean||define_fai_flags()|||| | ||
|- | |- | ||
|task_error||int||integer|| ||''every task can set it''|| formerly $terror | |task_error||int||||integer|| ||''every task can set it''|| formerly $terror | ||
|- | |- | ||
|stamp||int ||..._IN_PROGRESS|| || || | |stamp||int ||||..._IN_PROGRESS|| || || | ||
|- | |- | ||
|DEBIAN_FRONTEND||int||noninteractive||||dpkg -i|| | |DEBIAN_FRONTEND||int||||noninteractive||||dpkg -i|| | ||
|- | |- | ||
|do_init_tasks||int|| boolean ||||[[fai]], task_confdir(), prcopyleft()||1 if doing net or CD installations | |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|| | |BROADCAST||||||192.168.0.127|| get-boot-info||scripts/FAIBASE/30-interface|| | ||
|- | |- | ||
|DNSSRVS||||192.168.1.16||get-boot-info ||create_resolv_conf|| | |DNSSRVS||||||192.168.1.16||get-boot-info ||create_resolv_conf|| | ||
|- | |- | ||
|DNSSRVS_1||||192.168.1.16||get-boot-info|||| first element of DNSSRV | |DNSSRVS_1||||||192.168.1.16||get-boot-info|||| first element of DNSSRV | ||
|- | |- | ||
|DOMAIN||||workgroup.de||get-boot-info||task_setup() task_prepareapt()|| | |DOMAIN||||||workgroup.de||get-boot-info||task_setup() task_prepareapt()|| | ||
|- | |- | ||
|NETMASK||||255.255.255.128||get-boot-info|||| | |NETMASK||||||255.255.255.128||get-boot-info|||| | ||
|- | |- | ||
|NETWORK||||192.168.0.0||get-boot-info|||| | |NETWORK||||||192.168.0.0||get-boot-info|||| | ||
|- | |- | ||
|IPADDR||||192.168.0.14||get-boot-info|||| | |IPADDR||||||192.168.0.14||get-boot-info|||| | ||
|- | |- | ||
|GATEWAYS||||192.168.0.1||get-boot-info|||| | |GATEWAYS||||||192.168.0.1||get-boot-info|||| | ||
|- | |- | ||
|GATEWAYS_1||||192.168.0.1||get-boot-info|||| | |GATEWAYS_1||||||192.168.0.1||get-boot-info|||| | ||
|- | |- | ||
|SERVER||||kueppers||get-boot-info || || | |SERVER||||||kueppers||get-boot-info || || | ||
|- | |- | ||
|} | |} | ||
Variables that are unused since | Variables that are unused since 4.0 versions of FAI: | ||
{|border="1" class="wikitable sortable" | {|border="1" class="wikitable sortable" | ||
!name!!type!!example value!!created by!!used by !!comments | !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' | find all files not under a ".svn" directory and replace the string '$diskvar' with '$LOGDIR/diskvar' | ||
Line 200: | Line 192: | ||
Test: | 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 -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 | find -name '.svn' -prune -o -type f -exec perl -p -e 's/\$diskvar/\$LOGDIR\/diskvar/g' {} \; | less | ||
Really replace: ( same, but "i" added ) | Really replace: ( same, but "i" added ) | ||
find -name '.svn' -prune -o -type f -exec perl -pi -e 's/\$diskvar/\$LOGDIR\/diskvar/g' {} \; | 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
- "Re: How to use task_error ? (Writing pretty hooks)" (discussion on linux-fai mailing list, 04-Feb-2010)