diff options
| author | erdgeist <erdgeist@erdgeist.org> | 2007-09-30 12:09:03 +0000 |
|---|---|---|
| committer | erdgeist <erdgeist@erdgeist.org> | 2007-09-30 12:09:03 +0000 |
| commit | def86d60c07e401d88cc62f7ecd66c8e27b79abe (patch) | |
| tree | 0204078a04cb00dc3ca7e2fd252d1a45a2b4e811 | |
| parent | 0c78c429db258cc88f0f68d93698822a5c9b2f0a (diff) | |
Archive command should be working right now
| -rwxr-xr-x | ezjail-admin | 26 | ||||
| -rwxr-xr-x | ezjail.conf.sample | 3 |
2 files changed, 22 insertions, 7 deletions
diff --git a/ezjail-admin b/ezjail-admin index 0399a1b..1c34b12 100755 --- a/ezjail-admin +++ b/ezjail-admin | |||
| @@ -706,7 +706,7 @@ archive) | |||
| 706 | unset ezjail_archive ezjail_force | 706 | unset ezjail_archive ezjail_force |
| 707 | 707 | ||
| 708 | shift; while getopts :fr:d: arg; do case ${arg} in | 708 | shift; while getopts :fr:d: arg; do case ${arg} in |
| 709 | f) ezjail_force=${OPTARG};; | 709 | f) ezjail_force="YES";; |
| 710 | r) ezjail_archive=${OPTARG};; | 710 | r) ezjail_archive=${OPTARG};; |
| 711 | d) ezjail_archivedir=${OPTARG};; | 711 | d) ezjail_archivedir=${OPTARG};; |
| 712 | ?) exerr ${ezjail_usage_archive};; | 712 | ?) exerr ${ezjail_usage_archive};; |
| @@ -724,19 +724,31 @@ archive) | |||
| 724 | [ -n "${ezjail_id}" -a -z "${ezjail_force}" ] && exerr "Error: Jail appears to be still running, stop it first or [-f]orce archiving." | 724 | [ -n "${ezjail_id}" -a -z "${ezjail_force}" ] && exerr "Error: Jail appears to be still running, stop it first or [-f]orce archiving." |
| 725 | 725 | ||
| 726 | # if no archive name was specified, make one up | 726 | # if no archive name was specified, make one up |
| 727 | [ -z "${ezjail_archive}" ] && ezjail_archive="${ezjail_safename}-`date +%Y%m%d%H%M.%S`.tar.bz2" | 727 | [ -z "${ezjail_archive}" ] && ezjail_archive="${ezjail_safename}-`date +%Y%m%d%H%M.%S`.tar.gz" |
| 728 | 728 | ||
| 729 | # prepend archive directory | 729 | # if archive location is not absolute, prepend archive directory |
| 730 | ezjail_archive="${ezjail_archivedir:-`pwd -P`}"/"${ezjail_archive}" | 730 | [ "${ezjail_archive%%[!/]*}" ] || ezjail_archive="${ezjail_archivedir:-`pwd -P`}"/"${ezjail_archive}" |
| 731 | 731 | ||
| 732 | # It's a tar archive, after all | ||
| 732 | case ${ezjail_archive} in | 733 | case ${ezjail_archive} in |
| 733 | *.tar.gz|*.tgz) ;; | 734 | *.tar.gz|*.tgz) ;; |
| 734 | *) ezjail_archive="${ezjail_archive}.tar.gz" ;; | 735 | *) ezjail_archive="${ezjail_archive}.tar.gz" ;; |
| 735 | esac; | 736 | esac; |
| 736 | 737 | ||
| 737 | # TODO: tar cpf${ezjail_taroption} ${ezjail_archive} --atime-preserve --one-file-system ${ezjail_config} -C ${ezjail_root} | 738 | cd "${ezjail_rootdir}" || exerr "Error: can't cd to ${ezjail_root}." |
| 738 | cd ${ezjail_root} || exerr "Error: can't cd to ${ezjail_root}." | 739 | pax -wXtz -x ustar -f ${ezjail_archive} \ |
| 739 | pax -wXtz -x ustar -f ${ezjail_archive} -s/^/ezjail\// . | 740 | -s:"^[^\\.].*/ezjail\\.conf\$":ezjail.conf: \ |
| 741 | -s:"^[^\\.].*/${ezjail_safename}\$":prop.ezjail: \ | ||
| 742 | -s:"^[^\\.].*/${ezjail_safename}.norun\$":prop.ezjail: \ | ||
| 743 | -s:"etc/fstab.${ezjail_safename}\$":fstab.ezjail: \ | ||
| 744 | -s:"^\\.":ezjail: \ | ||
| 745 | "/etc/fstab.${ezjail_safename}" "${ezjail_config}" "${ezjail_etc}/ezjail.conf" . | ||
| 746 | |||
| 747 | # An error on a jail not running is bad | ||
| 748 | [ $? != "0" -a -z "${ezjail_force}" ] && exerr "Error: Archiving jail failed. You might want to check ${ezjail_archive}." | ||
| 749 | |||
| 750 | # When archiving a running jail, some errors might occur | ||
| 751 | [ $? = "0" ] || exerr "Warning: Archiving jail was not completely successful. For a running jail this is not unusual. You might want to check ${ezjail_archive}." | ||
| 740 | 752 | ||
| 741 | ;; | 753 | ;; |
| 742 | ######################## ezjail-admin CONFIG ######################## | 754 | ######################## ezjail-admin CONFIG ######################## |
diff --git a/ezjail.conf.sample b/ezjail.conf.sample index 5fee81a..3cbe78a 100755 --- a/ezjail.conf.sample +++ b/ezjail.conf.sample | |||
| @@ -29,6 +29,9 @@ | |||
| 29 | # This is the command that is being executed by the console subcommand | 29 | # This is the command that is being executed by the console subcommand |
| 30 | # ezjail_default_execute=/bin/sh | 30 | # ezjail_default_execute=/bin/sh |
| 31 | 31 | ||
| 32 | # This is the default location where ezjail archives its jails to | ||
| 33 | # ezjail_archivedir=`pwd -P` | ||
| 34 | |||
| 32 | # base jail will provide a soft link from /usr/bin/perl to /usr/local/bin/perl | 35 | # base jail will provide a soft link from /usr/bin/perl to /usr/local/bin/perl |
| 33 | # to accomodate all scripts using '#!/usr/bin/perl'... | 36 | # to accomodate all scripts using '#!/usr/bin/perl'... |
| 34 | # ezjail_uglyperlhack="YES" | 37 | # ezjail_uglyperlhack="YES" |
