From 796907bcb8544596075b44b8e4c984bbfae162df Mon Sep 17 00:00:00 2001 From: Trevor Batley Date: Thu, 9 Oct 2025 11:55:12 +1100 Subject: [PATCH] initial commit of file from CVS for smeserver-rsync on Thu Oct 9 11:55:12 AEDT 2025 --- .gitignore | 4 + Makefile | 21 + README.md | 17 +- additional/po/bg/rsync.po | 75 + additional/po/da/rsync.po | 74 + additional/po/de/rsync.po | 74 + additional/po/el/rsync.po | 74 + additional/po/es/rsync.po | 74 + additional/po/et/rsync.po | 74 + additional/po/fr/rsync.po | 75 + additional/po/he/rsync.po | 74 + additional/po/hu/rsync.po | 74 + additional/po/id/rsync.po | 73 + additional/po/it/rsync.po | 75 + additional/po/ja/rsync.po | 74 + additional/po/nb/rsync.po | 74 + additional/po/nl/rsync.po | 74 + additional/po/pl/rsync.po | 74 + additional/po/pt/rsync.po | 74 + additional/po/pt_BR/rsync.po | 74 + additional/po/ro/rsync.po | 74 + additional/po/ru/rsync.po | 74 + additional/po/sl/rsync.po | 74 + additional/po/sv/rsync.po | 74 + additional/po/th/rsync.po | 73 + additional/po/tr/rsync.po | 74 + additional/po/zh_CN/rsync.po | 75 + additional/po/zh_TW/rsync.po | 73 + contriborbase | 1 + createlinks | 15 + .../e-smith/db/dungog/defaults/rsync/overlap | 1 + .../e-smith/db/dungog/defaults/rsync/status | 1 + .../etc/e-smith/db/dungog/defaults/rsync/type | 1 + .../e-smith/events/actions/conf-dungogrsync | 238 +++ .../events/actions/conf-dungogrsyncanon | 86 + root/etc/e-smith/events/actions/run-rsync | 31 + .../templates/etc/crontab/30dungogrsync | 59 + root/etc/e-smith/web/functions/dungog-rsync | 1783 +++++++++++++++++ smeserver-rsync.spec | 151 ++ 39 files changed, 4258 insertions(+), 2 deletions(-) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 additional/po/bg/rsync.po create mode 100644 additional/po/da/rsync.po create mode 100644 additional/po/de/rsync.po create mode 100644 additional/po/el/rsync.po create mode 100644 additional/po/es/rsync.po create mode 100644 additional/po/et/rsync.po create mode 100644 additional/po/fr/rsync.po create mode 100644 additional/po/he/rsync.po create mode 100644 additional/po/hu/rsync.po create mode 100644 additional/po/id/rsync.po create mode 100644 additional/po/it/rsync.po create mode 100644 additional/po/ja/rsync.po create mode 100644 additional/po/nb/rsync.po create mode 100644 additional/po/nl/rsync.po create mode 100644 additional/po/pl/rsync.po create mode 100644 additional/po/pt/rsync.po create mode 100644 additional/po/pt_BR/rsync.po create mode 100644 additional/po/ro/rsync.po create mode 100644 additional/po/ru/rsync.po create mode 100644 additional/po/sl/rsync.po create mode 100644 additional/po/sv/rsync.po create mode 100644 additional/po/th/rsync.po create mode 100644 additional/po/tr/rsync.po create mode 100644 additional/po/zh_CN/rsync.po create mode 100644 additional/po/zh_TW/rsync.po create mode 100644 contriborbase create mode 100644 createlinks create mode 100644 root/etc/e-smith/db/dungog/defaults/rsync/overlap create mode 100644 root/etc/e-smith/db/dungog/defaults/rsync/status create mode 100644 root/etc/e-smith/db/dungog/defaults/rsync/type create mode 100644 root/etc/e-smith/events/actions/conf-dungogrsync create mode 100644 root/etc/e-smith/events/actions/conf-dungogrsyncanon create mode 100644 root/etc/e-smith/events/actions/run-rsync create mode 100644 root/etc/e-smith/templates/etc/crontab/30dungogrsync create mode 100644 root/etc/e-smith/web/functions/dungog-rsync create mode 100644 smeserver-rsync.spec diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cbb3a13 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +*.rpm +*.log +*spec-20* +*.tar.gz diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..74924aa --- /dev/null +++ b/Makefile @@ -0,0 +1,21 @@ +# Makefile for source rpm: smeserver-rsync +# $Id: Makefile,v 1.1 2020/12/28 09:08:21 brianr Exp $ +NAME := smeserver-rsync +SPECFILE = $(firstword $(wildcard *.spec)) + +define find-makefile-common +for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done +endef + +MAKEFILE_COMMON := $(shell $(find-makefile-common)) + +ifeq ($(MAKEFILE_COMMON),) +# attept a checkout +define checkout-makefile-common +test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 +endef + +MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) +endif + +include $(MAKEFILE_COMMON) diff --git a/README.md b/README.md index a83fff3..f491d9f 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,16 @@ -# smeserver-rsync +# smeserver-rsync -SMEServer Koozali developed git repo for smeserver-rsync smecontribs \ No newline at end of file +SMEServer Koozali developed git repo for smeserver-rsync smecontribs + +## Wiki +
https://wiki.koozali.org/Rsync +
https://wiki.koozali.org/Rsync-backup2disk + +## Bugzilla +Show list of outstanding bugs: [here](https://bugs.koozali.org/buglist.cgi?component=smeserver-rsync&product=SME%20Contribs&query_format=advanced&limit=0&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=CONFIRMED) + +## Description + +
*This description has been generated by an LLM AI system and cannot be relied on to be fully correct.* +*Once it has been checked, then this comment will be deleted* +
diff --git a/additional/po/bg/rsync.po b/additional/po/bg/rsync.po new file mode 100644 index 0000000..3e4d5d1 --- /dev/null +++ b/additional/po/bg/rsync.po @@ -0,0 +1,75 @@ +msgid "" +msgstr "" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:1(lexicon:lang) +msgid "en-us" +msgstr "bg" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:102(trans) +msgid "Backup time of day" +msgstr "Час за резервно копие" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:107(trans) +msgid "Update" +msgstr "Обновяване" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:12(trans) +msgid "Operation status report" +msgstr "Информация за състоянието по функциониране" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:19(trans) +msgid "This backup method uses a software package called rsync to create a copy of your server configuration and user data files, and copies it to an attached local hard drive every night. The initial backup will match your current data size. Subsequent backups will synchronize your data and only copy changes which will make your actual backup time very efficient. This method allows you to restore your configuration and user data files easily using command-line tools." +msgstr "Този метод за резервно копиране използва софтуерен пакет наречен rsync за да създаде копие на конфигурацията и данните на потребителите от сървъра, като ги слага на външен твърд диск всяка нощ. Първоначалното копиране ще съвпада по обем с текущия размер на данните. Следващите резервни копирания ще синхронизират данните и ще копират само промените, което ще направи времето за резервно копиране много ефективно. Този метод позволява да възстановявате конфигурация и потребителски данни лесно с използване на инструменти от командния ред." + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:30(trans) +msgid "Select whether you wish to enable nightly rsync backups" +msgstr "Изберете дали искате да включите нощно резервно копиране с rsync" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:37(trans) +msgid "Status" +msgstr "Състояние" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:42(trans) +msgid "Enter any file or directories to include. One entry per line. Full path is required." +msgstr "Въведете файл или директория за включване. По едно на ред. Изискват се пълните пътища." + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:49(trans) +msgid "Include" +msgstr "Включи" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:54(trans) +msgid "Enter any file or directories to exclude. One entry per line. Full path is required." +msgstr "Въведете файл или директория за изключване. По едно на ред. Изискват се пълните пътища." + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:61(trans) +msgid "Exclude" +msgstr "Изключи" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:66(trans) +msgid "The rsync backup requires a supported device that must be manually configured and formatted ext3. One example is an external USB drive mounted on /media/usbdisk. Enter your mount point below." +msgstr "Резервното копиране с rsync изисква използване на поддържани устройства, които трябва да се конфигурират ръчно и да са форматирани с ext3. Например, външен USB диск, монтиран в /media/usbdisk. Въведете точката на монтиране отдолу." + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:7(trans) +msgid "Enable/Disable Nightly Rsync Backup" +msgstr "Включване/Изключване на нощно резервно копиране с rsync" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:75(trans) +msgid "Mount" +msgstr "Монтиране" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:80(trans) +msgid "Enter the time you would like a reminder message to be automatically e-mailed to the administrator to attach your disk in 24 hr (hh:mm) format. Leave blank to disable." +msgstr "Въведете времето, когато искате да получавате напомнящо съобщение за да включите външния диск във формат чч:мм. Оставете полето празно за да изключите." + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:89(trans) +msgid "Reminder time of day" +msgstr "Време за напомняне" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:95(trans) +msgid "Enter the time you would like this backup to occur in 24 hr (hh:mm) format." +msgstr "Въведете времето, когато искате резервното копиране да се случи във формат чч:мм." diff --git a/additional/po/da/rsync.po b/additional/po/da/rsync.po new file mode 100644 index 0000000..5d511b6 --- /dev/null +++ b/additional/po/da/rsync.po @@ -0,0 +1,74 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:1(lexicon:lang) +msgid "en-us" +msgstr "da" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:102(trans) +msgid "Backup time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:107(trans) +msgid "Update" +msgstr "Opdater" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:12(trans) +msgid "Operation status report" +msgstr "Status rapport" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:19(trans) +msgid "This backup method uses a software package called rsync to create a copy of your server configuration and user data files, and copies it to an attached local hard drive every night. The initial backup will match your current data size. Subsequent backups will synchronize your data and only copy changes which will make your actual backup time very efficient. This method allows you to restore your configuration and user data files easily using command-line tools." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:30(trans) +msgid "Select whether you wish to enable nightly rsync backups" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:37(trans) +msgid "Status" +msgstr "Status" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:42(trans) +msgid "Enter any file or directories to include. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:49(trans) +msgid "Include" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:54(trans) +msgid "Enter any file or directories to exclude. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:61(trans) +msgid "Exclude" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:66(trans) +msgid "The rsync backup requires a supported device that must be manually configured and formatted ext3. One example is an external USB drive mounted on /media/usbdisk. Enter your mount point below." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:7(trans) +msgid "Enable/Disable Nightly Rsync Backup" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:75(trans) +msgid "Mount" +msgstr "Montering" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:80(trans) +msgid "Enter the time you would like a reminder message to be automatically e-mailed to the administrator to attach your disk in 24 hr (hh:mm) format. Leave blank to disable." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:89(trans) +msgid "Reminder time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:95(trans) +msgid "Enter the time you would like this backup to occur in 24 hr (hh:mm) format." +msgstr "Indtast starttid for sikkerhedskopi i 24 timers format (tt:mm)." diff --git a/additional/po/de/rsync.po b/additional/po/de/rsync.po new file mode 100644 index 0000000..f4c44a1 --- /dev/null +++ b/additional/po/de/rsync.po @@ -0,0 +1,74 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:1(lexicon:lang) +msgid "en-us" +msgstr "de" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:102(trans) +msgid "Backup time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:107(trans) +msgid "Update" +msgstr "Aktualisieren" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:12(trans) +msgid "Operation status report" +msgstr "Statusbericht" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:19(trans) +msgid "This backup method uses a software package called rsync to create a copy of your server configuration and user data files, and copies it to an attached local hard drive every night. The initial backup will match your current data size. Subsequent backups will synchronize your data and only copy changes which will make your actual backup time very efficient. This method allows you to restore your configuration and user data files easily using command-line tools." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:30(trans) +msgid "Select whether you wish to enable nightly rsync backups" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:37(trans) +msgid "Status" +msgstr "Status" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:42(trans) +msgid "Enter any file or directories to include. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:49(trans) +msgid "Include" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:54(trans) +msgid "Enter any file or directories to exclude. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:61(trans) +msgid "Exclude" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:66(trans) +msgid "The rsync backup requires a supported device that must be manually configured and formatted ext3. One example is an external USB drive mounted on /media/usbdisk. Enter your mount point below." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:7(trans) +msgid "Enable/Disable Nightly Rsync Backup" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:75(trans) +msgid "Mount" +msgstr "Mount" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:80(trans) +msgid "Enter the time you would like a reminder message to be automatically e-mailed to the administrator to attach your disk in 24 hr (hh:mm) format. Leave blank to disable." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:89(trans) +msgid "Reminder time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:95(trans) +msgid "Enter the time you would like this backup to occur in 24 hr (hh:mm) format." +msgstr "Geben Sie die Zeit, zu der der Sicherungsauftrag ausgeführt werden soll, im 24-Stunden-Format (hh:mm) an. ]]>" diff --git a/additional/po/el/rsync.po b/additional/po/el/rsync.po new file mode 100644 index 0000000..37dfd8b --- /dev/null +++ b/additional/po/el/rsync.po @@ -0,0 +1,74 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:1(lexicon:lang) +msgid "en-us" +msgstr "el" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:102(trans) +msgid "Backup time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:107(trans) +msgid "Update" +msgstr "Ενημέρωση" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:12(trans) +msgid "Operation status report" +msgstr "Αναφορά κατάστασης λειτουργίας" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:19(trans) +msgid "This backup method uses a software package called rsync to create a copy of your server configuration and user data files, and copies it to an attached local hard drive every night. The initial backup will match your current data size. Subsequent backups will synchronize your data and only copy changes which will make your actual backup time very efficient. This method allows you to restore your configuration and user data files easily using command-line tools." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:30(trans) +msgid "Select whether you wish to enable nightly rsync backups" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:37(trans) +msgid "Status" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:42(trans) +msgid "Enter any file or directories to include. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:49(trans) +msgid "Include" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:54(trans) +msgid "Enter any file or directories to exclude. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:61(trans) +msgid "Exclude" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:66(trans) +msgid "The rsync backup requires a supported device that must be manually configured and formatted ext3. One example is an external USB drive mounted on /media/usbdisk. Enter your mount point below." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:7(trans) +msgid "Enable/Disable Nightly Rsync Backup" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:75(trans) +msgid "Mount" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:80(trans) +msgid "Enter the time you would like a reminder message to be automatically e-mailed to the administrator to attach your disk in 24 hr (hh:mm) format. Leave blank to disable." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:89(trans) +msgid "Reminder time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:95(trans) +msgid "Enter the time you would like this backup to occur in 24 hr (hh:mm) format." +msgstr "" diff --git a/additional/po/es/rsync.po b/additional/po/es/rsync.po new file mode 100644 index 0000000..84a82ba --- /dev/null +++ b/additional/po/es/rsync.po @@ -0,0 +1,74 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:1(lexicon:lang) +msgid "en-us" +msgstr "es" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:102(trans) +msgid "Backup time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:107(trans) +msgid "Update" +msgstr "Actualizar" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:12(trans) +msgid "Operation status report" +msgstr "Estado de la operación" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:19(trans) +msgid "This backup method uses a software package called rsync to create a copy of your server configuration and user data files, and copies it to an attached local hard drive every night. The initial backup will match your current data size. Subsequent backups will synchronize your data and only copy changes which will make your actual backup time very efficient. This method allows you to restore your configuration and user data files easily using command-line tools." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:30(trans) +msgid "Select whether you wish to enable nightly rsync backups" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:37(trans) +msgid "Status" +msgstr "Estado" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:42(trans) +msgid "Enter any file or directories to include. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:49(trans) +msgid "Include" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:54(trans) +msgid "Enter any file or directories to exclude. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:61(trans) +msgid "Exclude" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:66(trans) +msgid "The rsync backup requires a supported device that must be manually configured and formatted ext3. One example is an external USB drive mounted on /media/usbdisk. Enter your mount point below." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:7(trans) +msgid "Enable/Disable Nightly Rsync Backup" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:75(trans) +msgid "Mount" +msgstr "Montar" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:80(trans) +msgid "Enter the time you would like a reminder message to be automatically e-mailed to the administrator to attach your disk in 24 hr (hh:mm) format. Leave blank to disable." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:89(trans) +msgid "Reminder time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:95(trans) +msgid "Enter the time you would like this backup to occur in 24 hr (hh:mm) format." +msgstr "Introduzca la hora que usted desea para que se lleve a cabo este respaldo en el formato de 24 hr (hh:mm)." diff --git a/additional/po/et/rsync.po b/additional/po/et/rsync.po new file mode 100644 index 0000000..700f325 --- /dev/null +++ b/additional/po/et/rsync.po @@ -0,0 +1,74 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:1(lexicon:lang) +msgid "en-us" +msgstr "et" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:102(trans) +msgid "Backup time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:107(trans) +msgid "Update" +msgstr "Uuenda" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:12(trans) +msgid "Operation status report" +msgstr "Operatsiooni tulemus" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:19(trans) +msgid "This backup method uses a software package called rsync to create a copy of your server configuration and user data files, and copies it to an attached local hard drive every night. The initial backup will match your current data size. Subsequent backups will synchronize your data and only copy changes which will make your actual backup time very efficient. This method allows you to restore your configuration and user data files easily using command-line tools." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:30(trans) +msgid "Select whether you wish to enable nightly rsync backups" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:37(trans) +msgid "Status" +msgstr "Olek" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:42(trans) +msgid "Enter any file or directories to include. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:49(trans) +msgid "Include" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:54(trans) +msgid "Enter any file or directories to exclude. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:61(trans) +msgid "Exclude" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:66(trans) +msgid "The rsync backup requires a supported device that must be manually configured and formatted ext3. One example is an external USB drive mounted on /media/usbdisk. Enter your mount point below." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:7(trans) +msgid "Enable/Disable Nightly Rsync Backup" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:75(trans) +msgid "Mount" +msgstr "Ühenda" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:80(trans) +msgid "Enter the time you would like a reminder message to be automatically e-mailed to the administrator to attach your disk in 24 hr (hh:mm) format. Leave blank to disable." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:89(trans) +msgid "Reminder time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:95(trans) +msgid "Enter the time you would like this backup to occur in 24 hr (hh:mm) format." +msgstr "Sisesta kellaaeg millal see varundusprotsess peaks käivituma 24 tunni vormingus (tt.mm)." diff --git a/additional/po/fr/rsync.po b/additional/po/fr/rsync.po new file mode 100644 index 0000000..a9e71a4 --- /dev/null +++ b/additional/po/fr/rsync.po @@ -0,0 +1,75 @@ +msgid "" +msgstr "" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:1(lexicon:lang) +msgid "en-us" +msgstr "fr" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:102(trans) +msgid "Backup time of day" +msgstr "Heure de la sauvegarde journalière" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:107(trans) +msgid "Update" +msgstr "Mettre à jour" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:12(trans) +msgid "Operation status report" +msgstr "Rapport d'état de l'opération" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:19(trans) +msgid "This backup method uses a software package called rsync to create a copy of your server configuration and user data files, and copies it to an attached local hard drive every night. The initial backup will match your current data size. Subsequent backups will synchronize your data and only copy changes which will make your actual backup time very efficient. This method allows you to restore your configuration and user data files easily using command-line tools." +msgstr "Cette méthode de sauvegarde utilise un progiciel appelé rsync pour créer une copie de la configuration de votre serveur et des fichiers de données des utilisateurs, et la copie sur un disque dur local connecté chaque nuit. La sauvegarde initiale correspondra à la taille actuelle de vos données. Les sauvegardes suivantes synchroniseront vos données et ne copieront que les modifications, ce qui rendra votre temps de sauvegarde réel très efficace. Cette méthode vous permet de restaurer facilement vos fichiers de configuration et de données utilisateur à l'aide d'outils de ligne de commande." + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:30(trans) +msgid "Select whether you wish to enable nightly rsync backups" +msgstr "Sélectionnez si vous souhaitez activer les sauvegardes rsync nocturnes" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:37(trans) +msgid "Status" +msgstr "État" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:42(trans) +msgid "Enter any file or directories to include. One entry per line. Full path is required." +msgstr "Saisissez le ou les fichiers ou dossiers à inclure. Une entrée par ligne. Le chemin complet est requis." + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:49(trans) +msgid "Include" +msgstr "Inclure" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:54(trans) +msgid "Enter any file or directories to exclude. One entry per line. Full path is required." +msgstr "Saisissez le ou les fichiers ou dossiers à exclure. Une entrée par ligne. Le chemin complet est requis." + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:61(trans) +msgid "Exclude" +msgstr "Exclure" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:66(trans) +msgid "The rsync backup requires a supported device that must be manually configured and formatted ext3. One example is an external USB drive mounted on /media/usbdisk. Enter your mount point below." +msgstr "La sauvegarde rsync nécessite un périphérique pris en charge qui doit être configuré et formaté manuellement en ext3. Un exemple est un lecteur USB externe monté sur / media / usbdisk. Entrez votre point de montage ci-dessous. " + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:7(trans) +msgid "Enable/Disable Nightly Rsync Backup" +msgstr "Activer / désactiver la sauvegarde Rsync nocturne" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:75(trans) +msgid "Mount" +msgstr "Monter" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:80(trans) +msgid "Enter the time you would like a reminder message to be automatically e-mailed to the administrator to attach your disk in 24 hr (hh:mm) format. Leave blank to disable." +msgstr "Saisissez l'heure à laquelle vous souhaitez qu'un message de rappel soit automatiquement envoyé par e-mail à l'administrateur pour joindre votre disque, au format 24 h (hh: mm). Laissez vide pour désactiver." + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:89(trans) +msgid "Reminder time of day" +msgstr "Heure de rappel journalier. " + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:95(trans) +msgid "Enter the time you would like this backup to occur in 24 hr (hh:mm) format." +msgstr "Saisissez lh'eure à laquelle vous voulez réaliser cette sauvegarde au format horaire 0-24 (hh:mm)." diff --git a/additional/po/he/rsync.po b/additional/po/he/rsync.po new file mode 100644 index 0000000..dc098e5 --- /dev/null +++ b/additional/po/he/rsync.po @@ -0,0 +1,74 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:1(lexicon:lang) +msgid "en-us" +msgstr "he" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:102(trans) +msgid "Backup time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:107(trans) +msgid "Update" +msgstr "עדכון" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:12(trans) +msgid "Operation status report" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:19(trans) +msgid "This backup method uses a software package called rsync to create a copy of your server configuration and user data files, and copies it to an attached local hard drive every night. The initial backup will match your current data size. Subsequent backups will synchronize your data and only copy changes which will make your actual backup time very efficient. This method allows you to restore your configuration and user data files easily using command-line tools." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:30(trans) +msgid "Select whether you wish to enable nightly rsync backups" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:37(trans) +msgid "Status" +msgstr "מצב" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:42(trans) +msgid "Enter any file or directories to include. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:49(trans) +msgid "Include" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:54(trans) +msgid "Enter any file or directories to exclude. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:61(trans) +msgid "Exclude" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:66(trans) +msgid "The rsync backup requires a supported device that must be manually configured and formatted ext3. One example is an external USB drive mounted on /media/usbdisk. Enter your mount point below." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:7(trans) +msgid "Enable/Disable Nightly Rsync Backup" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:75(trans) +msgid "Mount" +msgstr "עגון" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:80(trans) +msgid "Enter the time you would like a reminder message to be automatically e-mailed to the administrator to attach your disk in 24 hr (hh:mm) format. Leave blank to disable." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:89(trans) +msgid "Reminder time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:95(trans) +msgid "Enter the time you would like this backup to occur in 24 hr (hh:mm) format." +msgstr "" diff --git a/additional/po/hu/rsync.po b/additional/po/hu/rsync.po new file mode 100644 index 0000000..bd853a7 --- /dev/null +++ b/additional/po/hu/rsync.po @@ -0,0 +1,74 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:1(lexicon:lang) +msgid "en-us" +msgstr "hu" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:102(trans) +msgid "Backup time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:107(trans) +msgid "Update" +msgstr "Frissítés" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:12(trans) +msgid "Operation status report" +msgstr "Használati jelentés" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:19(trans) +msgid "This backup method uses a software package called rsync to create a copy of your server configuration and user data files, and copies it to an attached local hard drive every night. The initial backup will match your current data size. Subsequent backups will synchronize your data and only copy changes which will make your actual backup time very efficient. This method allows you to restore your configuration and user data files easily using command-line tools." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:30(trans) +msgid "Select whether you wish to enable nightly rsync backups" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:37(trans) +msgid "Status" +msgstr "Állapot" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:42(trans) +msgid "Enter any file or directories to include. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:49(trans) +msgid "Include" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:54(trans) +msgid "Enter any file or directories to exclude. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:61(trans) +msgid "Exclude" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:66(trans) +msgid "The rsync backup requires a supported device that must be manually configured and formatted ext3. One example is an external USB drive mounted on /media/usbdisk. Enter your mount point below." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:7(trans) +msgid "Enable/Disable Nightly Rsync Backup" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:75(trans) +msgid "Mount" +msgstr "Csatlakoztatás" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:80(trans) +msgid "Enter the time you would like a reminder message to be automatically e-mailed to the administrator to attach your disk in 24 hr (hh:mm) format. Leave blank to disable." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:89(trans) +msgid "Reminder time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:95(trans) +msgid "Enter the time you would like this backup to occur in 24 hr (hh:mm) format." +msgstr "" diff --git a/additional/po/id/rsync.po b/additional/po/id/rsync.po new file mode 100644 index 0000000..c73efaa --- /dev/null +++ b/additional/po/id/rsync.po @@ -0,0 +1,73 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:1(lexicon:lang) +msgid "en-us" +msgstr "id" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:102(trans) +msgid "Backup time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:107(trans) +msgid "Update" +msgstr "Update" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:12(trans) +msgid "Operation status report" +msgstr "Laporan status operasi" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:19(trans) +msgid "This backup method uses a software package called rsync to create a copy of your server configuration and user data files, and copies it to an attached local hard drive every night. The initial backup will match your current data size. Subsequent backups will synchronize your data and only copy changes which will make your actual backup time very efficient. This method allows you to restore your configuration and user data files easily using command-line tools." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:30(trans) +msgid "Select whether you wish to enable nightly rsync backups" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:37(trans) +msgid "Status" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:42(trans) +msgid "Enter any file or directories to include. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:49(trans) +msgid "Include" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:54(trans) +msgid "Enter any file or directories to exclude. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:61(trans) +msgid "Exclude" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:66(trans) +msgid "The rsync backup requires a supported device that must be manually configured and formatted ext3. One example is an external USB drive mounted on /media/usbdisk. Enter your mount point below." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:7(trans) +msgid "Enable/Disable Nightly Rsync Backup" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:75(trans) +msgid "Mount" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:80(trans) +msgid "Enter the time you would like a reminder message to be automatically e-mailed to the administrator to attach your disk in 24 hr (hh:mm) format. Leave blank to disable." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:89(trans) +msgid "Reminder time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:95(trans) +msgid "Enter the time you would like this backup to occur in 24 hr (hh:mm) format." +msgstr "" diff --git a/additional/po/it/rsync.po b/additional/po/it/rsync.po new file mode 100644 index 0000000..f3e725e --- /dev/null +++ b/additional/po/it/rsync.po @@ -0,0 +1,75 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:1(lexicon:lang) +msgid "en-us" +msgstr "it" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:102(trans) +msgid "Backup time of day" +msgstr "Orario del backup" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:107(trans) +msgid "Update" +msgstr "Aggiorna" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:12(trans) +msgid "Operation status report" +msgstr "Rapporto operazione" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:19(trans) +msgid "This backup method uses a software package called rsync to create a copy of your server configuration and user data files, and copies it to an attached local hard drive every night. The initial backup will match your current data size. Subsequent backups will synchronize your data and only copy changes which will make your actual backup time very efficient. This method allows you to restore your configuration and user data files easily using command-line tools." +msgstr "Questo metodo di backup utilizza un pacchetto software chiamato rsync per creare una copia della configurazione del server e dei dati degli utenti, e trasferirli ogni notte su un disco rigido collegato. Il backup iniziale avra' la stessa dimensione dei dati attuali. I backup seguenti sincronizzeranno i dati e copieranno solo le variazioni, rendendo molto efficienti i tempi del backup. Questo metodo consente di ripristinare la configurazione e i dati degli utenti in maniera semplice utilizzando la riga di comando." + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:30(trans) +msgid "Select whether you wish to enable nightly rsync backups" +msgstr "Selezionare se si desiderano attivare i backup notturni via rsync." + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:37(trans) +msgid "Status" +msgstr "Stato" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:42(trans) +msgid "Enter any file or directories to include. One entry per line. Full path is required." +msgstr "Inserire eventuali files o directory da includere, uno per riga. E' richiesto di specificare l'intero percorso." + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:49(trans) +msgid "Include" +msgstr "Includere" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:54(trans) +msgid "Enter any file or directories to exclude. One entry per line. Full path is required." +msgstr "Inserire eventuali file o directory da escludere, uno per riga. E' richiesto di specificare l'intero percorso." + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:61(trans) +msgid "Exclude" +msgstr "Escludere" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:66(trans) +msgid "The rsync backup requires a supported device that must be manually configured and formatted ext3. One example is an external USB drive mounted on /media/usbdisk. Enter your mount point below." +msgstr "Il backup via rsync richiede un dispositivo supportato che sia stato manualmente configurato e formattato ext3. Un esempio e' un disco rigido USB esterno montato sotto la directory /media/usbdisk. Inserire qui sotto la directory sotto cui e' montato." + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:7(trans) +msgid "Enable/Disable Nightly Rsync Backup" +msgstr "Abilitare/disabilitare il backup rsync notturno" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:75(trans) +msgid "Mount" +msgstr "Mount" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:80(trans) +msgid "Enter the time you would like a reminder message to be automatically e-mailed to the administrator to attach your disk in 24 hr (hh:mm) format. Leave blank to disable." +msgstr "Inserire l'orario in formato 24h (hh:mm) in cui si desidera che un promemoria per collegare il disco venga automaticamente inviato via e-mail all'amministratore.Lasciare il campo vuoto per disabilitare." + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:89(trans) +msgid "Reminder time of day" +msgstr "Orario del promemoria" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:95(trans) +msgid "Enter the time you would like this backup to occur in 24 hr (hh:mm) format." +msgstr "Inserire l'ora del backup in formato 24 ore (hh:mm)." diff --git a/additional/po/ja/rsync.po b/additional/po/ja/rsync.po new file mode 100644 index 0000000..885c6e7 --- /dev/null +++ b/additional/po/ja/rsync.po @@ -0,0 +1,74 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:1(lexicon:lang) +msgid "en-us" +msgstr "ja" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:102(trans) +msgid "Backup time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:107(trans) +msgid "Update" +msgstr "更新" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:12(trans) +msgid "Operation status report" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:19(trans) +msgid "This backup method uses a software package called rsync to create a copy of your server configuration and user data files, and copies it to an attached local hard drive every night. The initial backup will match your current data size. Subsequent backups will synchronize your data and only copy changes which will make your actual backup time very efficient. This method allows you to restore your configuration and user data files easily using command-line tools." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:30(trans) +msgid "Select whether you wish to enable nightly rsync backups" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:37(trans) +msgid "Status" +msgstr "状態" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:42(trans) +msgid "Enter any file or directories to include. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:49(trans) +msgid "Include" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:54(trans) +msgid "Enter any file or directories to exclude. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:61(trans) +msgid "Exclude" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:66(trans) +msgid "The rsync backup requires a supported device that must be manually configured and formatted ext3. One example is an external USB drive mounted on /media/usbdisk. Enter your mount point below." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:7(trans) +msgid "Enable/Disable Nightly Rsync Backup" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:75(trans) +msgid "Mount" +msgstr "マウント" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:80(trans) +msgid "Enter the time you would like a reminder message to be automatically e-mailed to the administrator to attach your disk in 24 hr (hh:mm) format. Leave blank to disable." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:89(trans) +msgid "Reminder time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:95(trans) +msgid "Enter the time you would like this backup to occur in 24 hr (hh:mm) format." +msgstr "" diff --git a/additional/po/nb/rsync.po b/additional/po/nb/rsync.po new file mode 100644 index 0000000..f72f88a --- /dev/null +++ b/additional/po/nb/rsync.po @@ -0,0 +1,74 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:1(lexicon:lang) +msgid "en-us" +msgstr "nb" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:102(trans) +msgid "Backup time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:107(trans) +msgid "Update" +msgstr "Oppdater" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:12(trans) +msgid "Operation status report" +msgstr "Statusrapport for operasjonen" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:19(trans) +msgid "This backup method uses a software package called rsync to create a copy of your server configuration and user data files, and copies it to an attached local hard drive every night. The initial backup will match your current data size. Subsequent backups will synchronize your data and only copy changes which will make your actual backup time very efficient. This method allows you to restore your configuration and user data files easily using command-line tools." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:30(trans) +msgid "Select whether you wish to enable nightly rsync backups" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:37(trans) +msgid "Status" +msgstr "Status" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:42(trans) +msgid "Enter any file or directories to include. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:49(trans) +msgid "Include" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:54(trans) +msgid "Enter any file or directories to exclude. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:61(trans) +msgid "Exclude" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:66(trans) +msgid "The rsync backup requires a supported device that must be manually configured and formatted ext3. One example is an external USB drive mounted on /media/usbdisk. Enter your mount point below." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:7(trans) +msgid "Enable/Disable Nightly Rsync Backup" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:75(trans) +msgid "Mount" +msgstr "Monter" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:80(trans) +msgid "Enter the time you would like a reminder message to be automatically e-mailed to the administrator to attach your disk in 24 hr (hh:mm) format. Leave blank to disable." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:89(trans) +msgid "Reminder time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:95(trans) +msgid "Enter the time you would like this backup to occur in 24 hr (hh:mm) format." +msgstr "" diff --git a/additional/po/nl/rsync.po b/additional/po/nl/rsync.po new file mode 100644 index 0000000..cab1568 --- /dev/null +++ b/additional/po/nl/rsync.po @@ -0,0 +1,74 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:1(lexicon:lang) +msgid "en-us" +msgstr "nl" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:102(trans) +msgid "Backup time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:107(trans) +msgid "Update" +msgstr "Wijzigen" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:12(trans) +msgid "Operation status report" +msgstr "Operationeel status rapport" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:19(trans) +msgid "This backup method uses a software package called rsync to create a copy of your server configuration and user data files, and copies it to an attached local hard drive every night. The initial backup will match your current data size. Subsequent backups will synchronize your data and only copy changes which will make your actual backup time very efficient. This method allows you to restore your configuration and user data files easily using command-line tools." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:30(trans) +msgid "Select whether you wish to enable nightly rsync backups" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:37(trans) +msgid "Status" +msgstr "Status" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:42(trans) +msgid "Enter any file or directories to include. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:49(trans) +msgid "Include" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:54(trans) +msgid "Enter any file or directories to exclude. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:61(trans) +msgid "Exclude" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:66(trans) +msgid "The rsync backup requires a supported device that must be manually configured and formatted ext3. One example is an external USB drive mounted on /media/usbdisk. Enter your mount point below." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:7(trans) +msgid "Enable/Disable Nightly Rsync Backup" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:75(trans) +msgid "Mount" +msgstr "Aankoppelen" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:80(trans) +msgid "Enter the time you would like a reminder message to be automatically e-mailed to the administrator to attach your disk in 24 hr (hh:mm) format. Leave blank to disable." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:89(trans) +msgid "Reminder time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:95(trans) +msgid "Enter the time you would like this backup to occur in 24 hr (hh:mm) format." +msgstr "Voer de tijd in waarop u deze back-up wilt laten uitvoeren in 24 uurs formaat (uu:mm)." diff --git a/additional/po/pl/rsync.po b/additional/po/pl/rsync.po new file mode 100644 index 0000000..484680d --- /dev/null +++ b/additional/po/pl/rsync.po @@ -0,0 +1,74 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:1(lexicon:lang) +msgid "en-us" +msgstr "pl" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:102(trans) +msgid "Backup time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:107(trans) +msgid "Update" +msgstr "Aktualizuj" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:12(trans) +msgid "Operation status report" +msgstr "Raport o stanie procesu" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:19(trans) +msgid "This backup method uses a software package called rsync to create a copy of your server configuration and user data files, and copies it to an attached local hard drive every night. The initial backup will match your current data size. Subsequent backups will synchronize your data and only copy changes which will make your actual backup time very efficient. This method allows you to restore your configuration and user data files easily using command-line tools." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:30(trans) +msgid "Select whether you wish to enable nightly rsync backups" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:37(trans) +msgid "Status" +msgstr "Stan" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:42(trans) +msgid "Enter any file or directories to include. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:49(trans) +msgid "Include" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:54(trans) +msgid "Enter any file or directories to exclude. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:61(trans) +msgid "Exclude" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:66(trans) +msgid "The rsync backup requires a supported device that must be manually configured and formatted ext3. One example is an external USB drive mounted on /media/usbdisk. Enter your mount point below." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:7(trans) +msgid "Enable/Disable Nightly Rsync Backup" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:75(trans) +msgid "Mount" +msgstr "Zamontuj" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:80(trans) +msgid "Enter the time you would like a reminder message to be automatically e-mailed to the administrator to attach your disk in 24 hr (hh:mm) format. Leave blank to disable." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:89(trans) +msgid "Reminder time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:95(trans) +msgid "Enter the time you would like this backup to occur in 24 hr (hh:mm) format." +msgstr "" diff --git a/additional/po/pt/rsync.po b/additional/po/pt/rsync.po new file mode 100644 index 0000000..e612be2 --- /dev/null +++ b/additional/po/pt/rsync.po @@ -0,0 +1,74 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:1(lexicon:lang) +msgid "en-us" +msgstr "pt" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:102(trans) +msgid "Backup time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:107(trans) +msgid "Update" +msgstr "Atualizar" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:12(trans) +msgid "Operation status report" +msgstr "Relarório de status de operação" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:19(trans) +msgid "This backup method uses a software package called rsync to create a copy of your server configuration and user data files, and copies it to an attached local hard drive every night. The initial backup will match your current data size. Subsequent backups will synchronize your data and only copy changes which will make your actual backup time very efficient. This method allows you to restore your configuration and user data files easily using command-line tools." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:30(trans) +msgid "Select whether you wish to enable nightly rsync backups" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:37(trans) +msgid "Status" +msgstr "Status" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:42(trans) +msgid "Enter any file or directories to include. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:49(trans) +msgid "Include" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:54(trans) +msgid "Enter any file or directories to exclude. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:61(trans) +msgid "Exclude" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:66(trans) +msgid "The rsync backup requires a supported device that must be manually configured and formatted ext3. One example is an external USB drive mounted on /media/usbdisk. Enter your mount point below." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:7(trans) +msgid "Enable/Disable Nightly Rsync Backup" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:75(trans) +msgid "Mount" +msgstr "Montar" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:80(trans) +msgid "Enter the time you would like a reminder message to be automatically e-mailed to the administrator to attach your disk in 24 hr (hh:mm) format. Leave blank to disable." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:89(trans) +msgid "Reminder time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:95(trans) +msgid "Enter the time you would like this backup to occur in 24 hr (hh:mm) format." +msgstr "Digite o horário que você gostaria que este backup iniciasse no formato 24 horas (hh:mm)" diff --git a/additional/po/pt_BR/rsync.po b/additional/po/pt_BR/rsync.po new file mode 100644 index 0000000..eb92b04 --- /dev/null +++ b/additional/po/pt_BR/rsync.po @@ -0,0 +1,74 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:1(lexicon:lang) +msgid "en-us" +msgstr "pt_BR" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:102(trans) +msgid "Backup time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:107(trans) +msgid "Update" +msgstr "Atualizar" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:12(trans) +msgid "Operation status report" +msgstr "Relatório de status da operação" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:19(trans) +msgid "This backup method uses a software package called rsync to create a copy of your server configuration and user data files, and copies it to an attached local hard drive every night. The initial backup will match your current data size. Subsequent backups will synchronize your data and only copy changes which will make your actual backup time very efficient. This method allows you to restore your configuration and user data files easily using command-line tools." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:30(trans) +msgid "Select whether you wish to enable nightly rsync backups" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:37(trans) +msgid "Status" +msgstr "Status" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:42(trans) +msgid "Enter any file or directories to include. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:49(trans) +msgid "Include" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:54(trans) +msgid "Enter any file or directories to exclude. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:61(trans) +msgid "Exclude" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:66(trans) +msgid "The rsync backup requires a supported device that must be manually configured and formatted ext3. One example is an external USB drive mounted on /media/usbdisk. Enter your mount point below." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:7(trans) +msgid "Enable/Disable Nightly Rsync Backup" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:75(trans) +msgid "Mount" +msgstr "Montar" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:80(trans) +msgid "Enter the time you would like a reminder message to be automatically e-mailed to the administrator to attach your disk in 24 hr (hh:mm) format. Leave blank to disable." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:89(trans) +msgid "Reminder time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:95(trans) +msgid "Enter the time you would like this backup to occur in 24 hr (hh:mm) format." +msgstr "Digite o horário que você gostaria que este backup iniciasse no formato 24 horas (hh:mm)" diff --git a/additional/po/ro/rsync.po b/additional/po/ro/rsync.po new file mode 100644 index 0000000..c0c57c6 --- /dev/null +++ b/additional/po/ro/rsync.po @@ -0,0 +1,74 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2;\n" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:1(lexicon:lang) +msgid "en-us" +msgstr "ro" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:102(trans) +msgid "Backup time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:107(trans) +msgid "Update" +msgstr "Actualizează" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:12(trans) +msgid "Operation status report" +msgstr "Raport operațiune" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:19(trans) +msgid "This backup method uses a software package called rsync to create a copy of your server configuration and user data files, and copies it to an attached local hard drive every night. The initial backup will match your current data size. Subsequent backups will synchronize your data and only copy changes which will make your actual backup time very efficient. This method allows you to restore your configuration and user data files easily using command-line tools." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:30(trans) +msgid "Select whether you wish to enable nightly rsync backups" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:37(trans) +msgid "Status" +msgstr "Stare" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:42(trans) +msgid "Enter any file or directories to include. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:49(trans) +msgid "Include" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:54(trans) +msgid "Enter any file or directories to exclude. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:61(trans) +msgid "Exclude" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:66(trans) +msgid "The rsync backup requires a supported device that must be manually configured and formatted ext3. One example is an external USB drive mounted on /media/usbdisk. Enter your mount point below." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:7(trans) +msgid "Enable/Disable Nightly Rsync Backup" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:75(trans) +msgid "Mount" +msgstr "Montează" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:80(trans) +msgid "Enter the time you would like a reminder message to be automatically e-mailed to the administrator to attach your disk in 24 hr (hh:mm) format. Leave blank to disable." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:89(trans) +msgid "Reminder time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:95(trans) +msgid "Enter the time you would like this backup to occur in 24 hr (hh:mm) format." +msgstr "" diff --git a/additional/po/ru/rsync.po b/additional/po/ru/rsync.po new file mode 100644 index 0000000..df6b14f --- /dev/null +++ b/additional/po/ru/rsync.po @@ -0,0 +1,74 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:1(lexicon:lang) +msgid "en-us" +msgstr "ru" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:102(trans) +msgid "Backup time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:107(trans) +msgid "Update" +msgstr "Обновить" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:12(trans) +msgid "Operation status report" +msgstr "Данные о состоянии функционирования" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:19(trans) +msgid "This backup method uses a software package called rsync to create a copy of your server configuration and user data files, and copies it to an attached local hard drive every night. The initial backup will match your current data size. Subsequent backups will synchronize your data and only copy changes which will make your actual backup time very efficient. This method allows you to restore your configuration and user data files easily using command-line tools." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:30(trans) +msgid "Select whether you wish to enable nightly rsync backups" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:37(trans) +msgid "Status" +msgstr "Состояние" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:42(trans) +msgid "Enter any file or directories to include. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:49(trans) +msgid "Include" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:54(trans) +msgid "Enter any file or directories to exclude. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:61(trans) +msgid "Exclude" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:66(trans) +msgid "The rsync backup requires a supported device that must be manually configured and formatted ext3. One example is an external USB drive mounted on /media/usbdisk. Enter your mount point below." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:7(trans) +msgid "Enable/Disable Nightly Rsync Backup" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:75(trans) +msgid "Mount" +msgstr "Монтирование" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:80(trans) +msgid "Enter the time you would like a reminder message to be automatically e-mailed to the administrator to attach your disk in 24 hr (hh:mm) format. Leave blank to disable." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:89(trans) +msgid "Reminder time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:95(trans) +msgid "Enter the time you would like this backup to occur in 24 hr (hh:mm) format." +msgstr "" diff --git a/additional/po/sl/rsync.po b/additional/po/sl/rsync.po new file mode 100644 index 0000000..afb9b21 --- /dev/null +++ b/additional/po/sl/rsync.po @@ -0,0 +1,74 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:1(lexicon:lang) +msgid "en-us" +msgstr "sl" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:102(trans) +msgid "Backup time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:107(trans) +msgid "Update" +msgstr "Posodobi" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:12(trans) +msgid "Operation status report" +msgstr "Porocilo o delovanju" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:19(trans) +msgid "This backup method uses a software package called rsync to create a copy of your server configuration and user data files, and copies it to an attached local hard drive every night. The initial backup will match your current data size. Subsequent backups will synchronize your data and only copy changes which will make your actual backup time very efficient. This method allows you to restore your configuration and user data files easily using command-line tools." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:30(trans) +msgid "Select whether you wish to enable nightly rsync backups" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:37(trans) +msgid "Status" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:42(trans) +msgid "Enter any file or directories to include. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:49(trans) +msgid "Include" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:54(trans) +msgid "Enter any file or directories to exclude. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:61(trans) +msgid "Exclude" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:66(trans) +msgid "The rsync backup requires a supported device that must be manually configured and formatted ext3. One example is an external USB drive mounted on /media/usbdisk. Enter your mount point below." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:7(trans) +msgid "Enable/Disable Nightly Rsync Backup" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:75(trans) +msgid "Mount" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:80(trans) +msgid "Enter the time you would like a reminder message to be automatically e-mailed to the administrator to attach your disk in 24 hr (hh:mm) format. Leave blank to disable." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:89(trans) +msgid "Reminder time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:95(trans) +msgid "Enter the time you would like this backup to occur in 24 hr (hh:mm) format." +msgstr "" diff --git a/additional/po/sv/rsync.po b/additional/po/sv/rsync.po new file mode 100644 index 0000000..9f5bce4 --- /dev/null +++ b/additional/po/sv/rsync.po @@ -0,0 +1,74 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:1(lexicon:lang) +msgid "en-us" +msgstr "sv" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:102(trans) +msgid "Backup time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:107(trans) +msgid "Update" +msgstr "Uppdatera" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:12(trans) +msgid "Operation status report" +msgstr "Statusrapport över operationerna" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:19(trans) +msgid "This backup method uses a software package called rsync to create a copy of your server configuration and user data files, and copies it to an attached local hard drive every night. The initial backup will match your current data size. Subsequent backups will synchronize your data and only copy changes which will make your actual backup time very efficient. This method allows you to restore your configuration and user data files easily using command-line tools." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:30(trans) +msgid "Select whether you wish to enable nightly rsync backups" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:37(trans) +msgid "Status" +msgstr "Status" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:42(trans) +msgid "Enter any file or directories to include. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:49(trans) +msgid "Include" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:54(trans) +msgid "Enter any file or directories to exclude. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:61(trans) +msgid "Exclude" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:66(trans) +msgid "The rsync backup requires a supported device that must be manually configured and formatted ext3. One example is an external USB drive mounted on /media/usbdisk. Enter your mount point below." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:7(trans) +msgid "Enable/Disable Nightly Rsync Backup" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:75(trans) +msgid "Mount" +msgstr "Montera" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:80(trans) +msgid "Enter the time you would like a reminder message to be automatically e-mailed to the administrator to attach your disk in 24 hr (hh:mm) format. Leave blank to disable." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:89(trans) +msgid "Reminder time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:95(trans) +msgid "Enter the time you would like this backup to occur in 24 hr (hh:mm) format." +msgstr "Ange tidpunkten då du önskar att backupen görs i 24-timmars format (hh:mm)." diff --git a/additional/po/th/rsync.po b/additional/po/th/rsync.po new file mode 100644 index 0000000..843c56f --- /dev/null +++ b/additional/po/th/rsync.po @@ -0,0 +1,73 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:1(lexicon:lang) +msgid "en-us" +msgstr "th" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:102(trans) +msgid "Backup time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:107(trans) +msgid "Update" +msgstr "บันทึกการแก้ไข" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:12(trans) +msgid "Operation status report" +msgstr "รายงานสถานะการทำงาน" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:19(trans) +msgid "This backup method uses a software package called rsync to create a copy of your server configuration and user data files, and copies it to an attached local hard drive every night. The initial backup will match your current data size. Subsequent backups will synchronize your data and only copy changes which will make your actual backup time very efficient. This method allows you to restore your configuration and user data files easily using command-line tools." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:30(trans) +msgid "Select whether you wish to enable nightly rsync backups" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:37(trans) +msgid "Status" +msgstr "สถานะ" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:42(trans) +msgid "Enter any file or directories to include. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:49(trans) +msgid "Include" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:54(trans) +msgid "Enter any file or directories to exclude. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:61(trans) +msgid "Exclude" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:66(trans) +msgid "The rsync backup requires a supported device that must be manually configured and formatted ext3. One example is an external USB drive mounted on /media/usbdisk. Enter your mount point below." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:7(trans) +msgid "Enable/Disable Nightly Rsync Backup" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:75(trans) +msgid "Mount" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:80(trans) +msgid "Enter the time you would like a reminder message to be automatically e-mailed to the administrator to attach your disk in 24 hr (hh:mm) format. Leave blank to disable." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:89(trans) +msgid "Reminder time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:95(trans) +msgid "Enter the time you would like this backup to occur in 24 hr (hh:mm) format." +msgstr "" diff --git a/additional/po/tr/rsync.po b/additional/po/tr/rsync.po new file mode 100644 index 0000000..64aaf8d --- /dev/null +++ b/additional/po/tr/rsync.po @@ -0,0 +1,74 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:1(lexicon:lang) +msgid "en-us" +msgstr "tr" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:102(trans) +msgid "Backup time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:107(trans) +msgid "Update" +msgstr "Güncelle" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:12(trans) +msgid "Operation status report" +msgstr "İşlem durum raporu" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:19(trans) +msgid "This backup method uses a software package called rsync to create a copy of your server configuration and user data files, and copies it to an attached local hard drive every night. The initial backup will match your current data size. Subsequent backups will synchronize your data and only copy changes which will make your actual backup time very efficient. This method allows you to restore your configuration and user data files easily using command-line tools." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:30(trans) +msgid "Select whether you wish to enable nightly rsync backups" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:37(trans) +msgid "Status" +msgstr "Durum" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:42(trans) +msgid "Enter any file or directories to include. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:49(trans) +msgid "Include" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:54(trans) +msgid "Enter any file or directories to exclude. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:61(trans) +msgid "Exclude" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:66(trans) +msgid "The rsync backup requires a supported device that must be manually configured and formatted ext3. One example is an external USB drive mounted on /media/usbdisk. Enter your mount point below." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:7(trans) +msgid "Enable/Disable Nightly Rsync Backup" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:75(trans) +msgid "Mount" +msgstr "Bağla" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:80(trans) +msgid "Enter the time you would like a reminder message to be automatically e-mailed to the administrator to attach your disk in 24 hr (hh:mm) format. Leave blank to disable." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:89(trans) +msgid "Reminder time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:95(trans) +msgid "Enter the time you would like this backup to occur in 24 hr (hh:mm) format." +msgstr "" diff --git a/additional/po/zh_CN/rsync.po b/additional/po/zh_CN/rsync.po new file mode 100644 index 0000000..4b6e55b --- /dev/null +++ b/additional/po/zh_CN/rsync.po @@ -0,0 +1,75 @@ +msgid "" +msgstr "" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:1(lexicon:lang) +msgid "en-us" +msgstr "zh_CN" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:102(trans) +msgid "Backup time of day" +msgstr "备份日期" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:107(trans) +msgid "Update" +msgstr "更新" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:12(trans) +msgid "Operation status report" +msgstr "操作报告" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:19(trans) +msgid "This backup method uses a software package called rsync to create a copy of your server configuration and user data files, and copies it to an attached local hard drive every night. The initial backup will match your current data size. Subsequent backups will synchronize your data and only copy changes which will make your actual backup time very efficient. This method allows you to restore your configuration and user data files easily using command-line tools." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:30(trans) +msgid "Select whether you wish to enable nightly rsync backups" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:37(trans) +msgid "Status" +msgstr "状态" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:42(trans) +msgid "Enter any file or directories to include. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:49(trans) +msgid "Include" +msgstr "包含" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:54(trans) +msgid "Enter any file or directories to exclude. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:61(trans) +msgid "Exclude" +msgstr "排除" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:66(trans) +msgid "The rsync backup requires a supported device that must be manually configured and formatted ext3. One example is an external USB drive mounted on /media/usbdisk. Enter your mount point below." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:7(trans) +msgid "Enable/Disable Nightly Rsync Backup" +msgstr "启用/禁用 Rsync 夜间备份" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:75(trans) +msgid "Mount" +msgstr "挂载" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:80(trans) +msgid "Enter the time you would like a reminder message to be automatically e-mailed to the administrator to attach your disk in 24 hr (hh:mm) format. Leave blank to disable." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:89(trans) +msgid "Reminder time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:95(trans) +msgid "Enter the time you would like this backup to occur in 24 hr (hh:mm) format." +msgstr "请输入备份进行的时间点(24小时 hh:mm)。" diff --git a/additional/po/zh_TW/rsync.po b/additional/po/zh_TW/rsync.po new file mode 100644 index 0000000..f217bf9 --- /dev/null +++ b/additional/po/zh_TW/rsync.po @@ -0,0 +1,73 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:1(lexicon:lang) +msgid "en-us" +msgstr "zh_TW" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:102(trans) +msgid "Backup time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:107(trans) +msgid "Update" +msgstr "更新" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:12(trans) +msgid "Operation status report" +msgstr "運作狀態回報" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:19(trans) +msgid "This backup method uses a software package called rsync to create a copy of your server configuration and user data files, and copies it to an attached local hard drive every night. The initial backup will match your current data size. Subsequent backups will synchronize your data and only copy changes which will make your actual backup time very efficient. This method allows you to restore your configuration and user data files easily using command-line tools." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:30(trans) +msgid "Select whether you wish to enable nightly rsync backups" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:37(trans) +msgid "Status" +msgstr "狀態" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:42(trans) +msgid "Enter any file or directories to include. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:49(trans) +msgid "Include" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:54(trans) +msgid "Enter any file or directories to exclude. One entry per line. Full path is required." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:61(trans) +msgid "Exclude" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:66(trans) +msgid "The rsync backup requires a supported device that must be manually configured and formatted ext3. One example is an external USB drive mounted on /media/usbdisk. Enter your mount point below." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:7(trans) +msgid "Enable/Disable Nightly Rsync Backup" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:75(trans) +msgid "Mount" +msgstr "掛載" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:80(trans) +msgid "Enter the time you would like a reminder message to be automatically e-mailed to the administrator to attach your disk in 24 hr (hh:mm) format. Leave blank to disable." +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:89(trans) +msgid "Reminder time of day" +msgstr "" + +#: root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/rsync:95(trans) +msgid "Enter the time you would like this backup to occur in 24 hr (hh:mm) format." +msgstr "請以24小時的格式(hh:mm)輸入欲備份的開始時間。" diff --git a/contriborbase b/contriborbase new file mode 100644 index 0000000..9b7fd51 --- /dev/null +++ b/contriborbase @@ -0,0 +1 @@ +contribs10 diff --git a/createlinks b/createlinks new file mode 100644 index 0000000..f0bdd54 --- /dev/null +++ b/createlinks @@ -0,0 +1,15 @@ +#! /usr/bin/perl -w + +use esmith::Build::CreateLinks qw(:all); + +my $event; +panel_link("dungog-rsync", 'manager'); + +$event = 'conf-dungogrsync'; +event_link("conf-dungogrsync", "$event", "55"); + +$event = 'conf-dungogrsyncanon'; +event_link("conf-dungogrsyncanon", "$event", "55"); + +$event = 'run-rsync'; +event_link("run-rsync", "$event", "55"); diff --git a/root/etc/e-smith/db/dungog/defaults/rsync/overlap b/root/etc/e-smith/db/dungog/defaults/rsync/overlap new file mode 100644 index 0000000..7ecb56e --- /dev/null +++ b/root/etc/e-smith/db/dungog/defaults/rsync/overlap @@ -0,0 +1 @@ +no diff --git a/root/etc/e-smith/db/dungog/defaults/rsync/status b/root/etc/e-smith/db/dungog/defaults/rsync/status new file mode 100644 index 0000000..87e7bda --- /dev/null +++ b/root/etc/e-smith/db/dungog/defaults/rsync/status @@ -0,0 +1 @@ +disabled \ No newline at end of file diff --git a/root/etc/e-smith/db/dungog/defaults/rsync/type b/root/etc/e-smith/db/dungog/defaults/rsync/type new file mode 100644 index 0000000..09609a0 --- /dev/null +++ b/root/etc/e-smith/db/dungog/defaults/rsync/type @@ -0,0 +1 @@ +setting diff --git a/root/etc/e-smith/events/actions/conf-dungogrsync b/root/etc/e-smith/events/actions/conf-dungogrsync new file mode 100644 index 0000000..eec4233 --- /dev/null +++ b/root/etc/e-smith/events/actions/conf-dungogrsync @@ -0,0 +1,238 @@ +#!/usr/bin/perl -w + +#---------------------------------------------------------------------- +# Author Stephen Noble +# create rsync scripts for dungog-rsync +#---------------------------------------------------------------------- + +package esmith; + +use esmith::config; +use esmith::util; +use esmith::db; + +my %conf; +tie %conf, 'esmith::config'; + +local %dungog; +tie %dungog, 'esmith::config', '/home/e-smith/db/dungog'; + +my $rsync = $ARGV [1]; +die "rsync argument missing." unless defined ($rsync); + + unlink ("/usr/bin/dungogrsync-$rsync"); + + #define some variables + my $method = db_get_prop(\%dungog, $rsync, "method") || ''; + my $user = db_get_prop(\%dungog, $rsync, "user") || ''; + my $options = db_get_prop(\%dungog, $rsync, "options") || ''; + my $compress = db_get_prop(\%dungog, $rsync, "compress")|| ''; + my $delete = db_get_prop(\%dungog, $rsync, "delete") || ''; + my $noping = db_get_prop(\%dungog, $rsync, "noping") || ''; + my $dbdump = db_get_prop(\%dungog, $rsync, "dbdump") || ''; + my $pre = db_get_prop(\%dungog, $rsync, "pre") || ''; + my $post = db_get_prop(\%dungog, $rsync, "post") || ''; + my $bwlimit = db_get_prop(\%dungog, $rsync, "bwlimit") || ''; + + my $localdirlist1 = db_get_prop(\%dungog, "$rsync", "localdirlist") || 'none'; + my @localdirlist = split(/,/, $localdirlist1); + my $localdir = $localdirlist[$#localdirlist] || ''; + + my $remoteserverlist1 = db_get_prop(\%dungog, "$rsync", "remoteserverlist") || 'none'; + my @remoteserverlist = split(/,/, $remoteserverlist1); + my $remoteserver = $remoteserverlist[$#remoteserverlist] || ''; + + my $remotedirlist1 = db_get_prop(\%dungog, "$rsync", "remotedirlist") || 'none'; + my @remotedirlist = split(/,/, $remotedirlist1); + my $remotedir = $remotedirlist[$#remotedirlist] || ''; + + my $OPTS = '$OPTS'; + my $VAR = '$VAR'; + my $PATH = '$PATH'; + my $C = ''; + my $D = ''; + my $T = ''; + my $ex = ''; + my $in = ''; + my $bw = ''; + + #create rsync script /usr/bin/dungogrsync-$rsync + my $fname = "/usr/bin/dungogrsync-$rsync"; + open (RUN, ">$fname") || die ("Can't open $fname: $!"); + + print RUN "#!/bin/bash\n"; + print RUN "\n"; + print RUN "# rsync 'driver' script. (Uses SSH as the transport layer.)\n"; + print RUN "export PATH=$PATH:/bin:/usr/bin:/usr/local/bin\n"; + print RUN "\n"; + + my $overlap = db_get_prop(\%dungog, 'rsync', "overlap") || ''; + if ($overlap ne 'allow') + { + print RUN "/bin/ps ax > /tmp/check\n"; + print RUN "CHK=`/bin/cat /tmp/check | /bin/grep /usr/bin/rsync`\n"; + print RUN "if ! \$CHK ; then\n"; + print RUN " /bin/echo 'just ignore the warning above, it tells us'\n"; + print RUN " /bin/echo 'rsync is already running, exiting...'\n"; + print RUN " exit 0\n"; + print RUN "fi\n"; + print RUN "\n"; + } + + if ($pre ne '') + { + print RUN "# pre rsync command\n"; + print RUN "$pre\n"; + print RUN "\n"; + } + + if ($compress eq 'on') + { + $C = '--compress'; + } + + if ($delete eq 'on') + { + $D = '--delete'; + } + + unless ($bwlimit eq 'none') + { + $bw = "--bwlimit=$bwlimit"; + } + + if (-e "/opt/$rsync.ex") + { + $ex = "--exclude-from=/opt/$rsync.ex"; + } + + if (-e "/opt/$rsync.in") + { + $in = "--include-from=/opt/$rsync.in"; + } + + if ($options eq 'test') + { + $T = '--dry-run -vv'; + print RUN "# For testing. Only displays what rsync 'would' do and does no actual copying.\n"; + print RUN "OPTS='$T -u -a $C $D $ex $in $bw --stats --progress'\n"; + } + elsif ($options eq 'verbose') + { + $T = '-v'; + print RUN "# Does copy, but still gives a verbose display of what it is doing.\n"; + print RUN "OPTS='$T -u -a $C $D $ex $in $bw --stats --progress'\n"; + } + elsif ($options eq 'stats') + { + print RUN "# Does copy, not so verbose.\n"; + print RUN "OPTS='-u -a $C $D $ex $in $bw --stats'\n"; + } + elsif ($options eq 'quiet') + { + print RUN "# Copies and does no display at all.\n"; + print RUN "OPTS='-u -a $C $D $ex $in $bw --quiet'\n"; + } + + if ($dbdump eq 'on') + { + print RUN "# dump mysql tables\n"; + print RUN "/sbin/e-smith/signal-event pre-backup\n"; + print RUN "\n"; + } + + print RUN " echo 'Begin rsync transfer.'\n"; + print RUN "\n"; + + #senddirs','sendservers','receivedirs','receiveservers + if ($method eq 'senddirs') + { + foreach (sort @localdirlist) + { + my $remoteport = db_get_prop(\%dungog, "remoteport", $remoteserver) || '22'; + + # this server sends [directories to a server]\n"; + print RUN " echo ''\n"; + print RUN " echo 'Sending $_ to $remoteserver.'\n"; + print RUN " /usr/bin/rsync $OPTS -e \"ssh -p $remoteport\" $_ $remoteserver:$remotedir\n"; + print RUN "\n"; + + } + } + elsif ($method eq 'sendservers') + { + foreach (sort @remoteserverlist) + { + my $remoteport = db_get_prop(\%dungog, "remoteport", $_) || '22'; + + # this server sends [one dir to servers]\n"; + print RUN " echo ''\n"; + print RUN " echo 'Sending $localdir to $_.'\n"; + print RUN " /usr/bin/rsync $OPTS -e \"ssh -p $remoteport\" $localdir $_:$remotedir\n"; + print RUN "\n"; + } + } + elsif ($method eq 'receivedirs') + { + foreach (sort @remotedirlist) + { + my $remoteport = db_get_prop(\%dungog, "remoteport", $remoteserver) || '22'; + + # this server receives [dirs from servers]\n"; + print RUN " echo ''\n"; + print RUN " echo 'Receiving $_ from $remoteserver.'\n"; + print RUN " /usr/bin/rsync $OPTS -e \"ssh -p $remoteport\" $remoteserver:$_ $localdir\n"; + print RUN "\n"; + } + + } + elsif ($method eq 'receiveservers') + { + foreach (sort @remoteserverlist) + { + my $remoteport = db_get_prop(\%dungog, "remoteport", $_) || '22'; + + # this server receives [one dir from servers]\n"; + print RUN " echo ''\n"; + print RUN " echo 'Receiving $remotedir from $_.'\n"; + print RUN " /usr/bin/rsync $OPTS -e \"ssh -p $remoteport\" $_:$remotedir $localdir\$_\n"; + print RUN "\n"; + } + } + elsif ($method eq 'senddirs2self') + { + print RUN "# WARNING, if mounting a 2nd drive make sure you test the mount point \n"; + print RUN "# mounts correctly, or you risk filling up your first drive.\n"; + print RUN "# You may want to issue a pre rsync command to mount /mnt/2nddrive \n"; + print RUN "# \n"; + foreach (sort @localdirlist) + { + # this server sends [directories to itself]\n"; + print RUN "# run rsync \n"; + print RUN " echo ''\n"; + print RUN " echo 'Sending $_ to $conf{DomainName}'\n"; + print RUN " /usr/bin/rsync $T -u -R -a -l $ex $in --no-whole-file $D --stats $_ $remotedir\n"; + print RUN "\n"; + } + } + print RUN " echo 'Ending rsync transfer.'\n"; + print RUN "\n"; + + if ($dbdump eq 'on') + { + print RUN "/sbin/e-smith/signal-event post-backup\n"; + print RUN "\n"; + } + + if ($post ne '') + { + print RUN "# post rsync command\n"; + print RUN "$post\n"; + print RUN "\n"; + } + + close RUN; + chmod 0755, $fname; + system("/bin/chown $user $fname"); + +exit (0); diff --git a/root/etc/e-smith/events/actions/conf-dungogrsyncanon b/root/etc/e-smith/events/actions/conf-dungogrsyncanon new file mode 100644 index 0000000..503472e --- /dev/null +++ b/root/etc/e-smith/events/actions/conf-dungogrsyncanon @@ -0,0 +1,86 @@ +#!/usr/bin/perl -w + +#---------------------------------------------------------------------- +# Author Stephen Noble +# create rsync scripts for dungog-rsync +#---------------------------------------------------------------------- + +package esmith; + +use esmith::config; +use esmith::util; +use esmith::db; + +my %conf; +tie %conf, 'esmith::config'; + +local %dungog; +tie %dungog, 'esmith::config', '/home/e-smith/db/dungog'; + +my $rsync = $ARGV [1]; +die "rsync argument missing." unless defined ($rsync); + + unlink ("/usr/bin/dungogrsync-$rsync"); + + #define some variables + my $method = db_get_prop(\%dungog, $rsync, "method") || ''; + my $options = db_get_prop(\%dungog, $rsync, "options") || ''; + my $compress = db_get_prop(\%dungog, $rsync, "compress")|| ''; + + my $localdir = db_get_prop(\%dungog, $rsync, "localdir") || 'none'; + my $remoteserver = db_get_prop(\%dungog, $rsync, "remoteserver") || 'none'; + + my $OPTS = '$OPTS'; + my $VAR = '$VAR'; + my $C = ''; + my $D = ''; + + #create rsync set script /usr/bin/dungogrsync-$rsync + open (RUN, ">/usr/bin/dungogrsync-$rsync") || die ("Can't open /usr/bin/dungogrsync-$rsync: $!"); + + # can run from cron on a MITELsme server + # typical use, mirrors an ibay from the source server + + print RUN "#!/bin/bash\n"; + print RUN "\n"; + print RUN "# rsync 'driver' script. (Uses anonymous rsync.)\n"; + print RUN "\n"; + + if ($compress eq 'on') + { + $C = '--compress'; + } + + if ($options eq 'test') + { + print RUN "# For testing. Only displays what rsync 'would' do and does no actual copying.\n"; + print RUN "OPTS='-n -vv -u -a $C --stats --progress'\n"; + } + elsif ($options eq 'verbose') + { + print RUN "# Does copy, but still gives a verbose display of what it is doing.\n"; + print RUN "OPTS='-v -u -a $C --stats --progress'\n"; + } + elsif ($options eq 'stats') + { + print RUN "# Does copy, not so verbose.\n"; + print RUN "OPTS='-u -a $C --stats'\n"; + } + elsif ($options eq 'quiet') + { + print RUN "# Copies and does no display at all.\n"; + print RUN "OPTS='-u -a $C --quiet'\n"; + } + + print RUN "\n"; + print RUN " echo 'Begin rsync transfer from $remoteserver to $localdir.'\n"; + print RUN "\n"; + print RUN " /usr/bin/rsync $OPTS $remoteserver $localdir\n"; + print RUN "\n"; + print RUN " echo 'Ending rsync transfer.'\n"; + print RUN "\n"; + + close RUN; + chmod 0755, "/usr/bin/dungogrsync-$rsync"; + +exit (0); diff --git a/root/etc/e-smith/events/actions/run-rsync b/root/etc/e-smith/events/actions/run-rsync new file mode 100644 index 0000000..93d7798 --- /dev/null +++ b/root/etc/e-smith/events/actions/run-rsync @@ -0,0 +1,31 @@ +#!/usr/bin/perl -w + +#---------------------------------------------------------------------- +# Author Stephen Noble +# create run rsync scripts for dungog-rsync +#---------------------------------------------------------------------- + +package esmith; + +#use strict; +#use Errno; +use esmith::config; +use esmith::util; +use esmith::db; + +my %conf; +tie %conf, 'esmith::config'; + +#local %dungog; +#tie %dungog, 'esmith::config', '/home/e-smith/db/dungog'; + +my $event = $ARGV [0]; +my $rsync = $ARGV [1]; +my $user = $ARGV [2]; +die "rsync argument missing." unless defined ($rsync); +die "user argument missing." unless defined ($user); + + system("/bin/su -c /usr/bin/dungogrsync-$rsync $user 2> /var/log/dungogrsyncnow 1> /var/log/dungogrsyncnow") == 0 + or die ("Error occurred while running rsync.\n"); + +exit (0) \ No newline at end of file diff --git a/root/etc/e-smith/templates/etc/crontab/30dungogrsync b/root/etc/e-smith/templates/etc/crontab/30dungogrsync new file mode 100644 index 0000000..6f88a2b --- /dev/null +++ b/root/etc/e-smith/templates/etc/crontab/30dungogrsync @@ -0,0 +1,59 @@ +{ + use esmith::config; + use esmith::db; + + local %dungog; + tie %dungog, 'esmith::config', '/home/e-smith/db/dungog'; + + $OUT = "\n"; + + my @all = (); + foreach (keys %dungog) + { + push (@all, $_) + if (db_get_type(\%dungog, $_) eq "rsync"); + } + foreach (keys %dungog) + { + push (@all, $_) + if (db_get_type(\%dungog, $_) eq "rsyncAnon"); + } + + #if a rsync is defined set it up + my $all = @all || '0'; + if ($all > 0) + { + my $rsync; + foreach $rsync (sort @all) + { + my $user = db_get_prop(\%dungog, $rsync, "user") || 'root'; + my $freq = db_get_prop(\%dungog, $rsync, "freq") || ''; + my $day = db_get_prop(\%dungog, $rsync, "day") || 'tue'; + my $hour = db_get_prop(\%dungog, $rsync, "hour") || '3'; + my $min = db_get_prop(\%dungog, $rsync, "min") || '30'; + my $desc = db_get_prop(\%dungog, $rsync, "desc") || ''; + my $mail = db_get_prop(\%dungog, $rsync, "mail") || ''; + + #unless email is on, delete output + unless ($mail eq 'on') + { + $mail = '1>/dev/null 2>/dev/null'; + } + else + { + $mail = ''; + } + + if ($freq eq 'hourly') + { + $OUT .= "# hourly rsync by dungog-rsync.($desc)\n"; + $OUT .= "$min * * * * $user /usr/bin/dungogrsync-$rsync $mail\n"; + } + elsif ($freq eq 'on') + { + $OUT .= "# rsync by dungog-rsync.($desc)\n"; + $OUT .= "$min $hour * * $day $user /usr/bin/dungogrsync-$rsync $mail\n"; + } + } + } +} diff --git a/root/etc/e-smith/web/functions/dungog-rsync b/root/etc/e-smith/web/functions/dungog-rsync new file mode 100644 index 0000000..75957ab --- /dev/null +++ b/root/etc/e-smith/web/functions/dungog-rsync @@ -0,0 +1,1783 @@ +#!/usr/bin/perl -wT + +#---------------------------------------------------------------------- +# heading : Administration +# description : Rsync +# navigation : 4000 4863 +# +# Author Stephen Noble dungog.net +# +#---------------------------------------------------------------------- + +package esmith; + +use strict; +use CGI ':all'; +use CGI::Carp qw(fatalsToBrowser); + +use esmith::cgi; +use esmith::config; +use esmith::util; +use esmith::db; + +sub showInitial ($$); # main form +sub showHelp ($); + +sub modifyRsync ($$); # secure form +sub performModifyRsync ($); # secure action + +sub showAnon ($$); # anon form +sub performShowAnon ($); # anon action + +sub showIbay ($$); # ibay form +sub performAnon ($); # start stop anon rsync +sub modifyIbay ($); # toggle ibay public access + +sub deleteRsync ($); +sub deleteItem ($); + +sub performRsyncNow ($); # run backup now + +sub rsyncNowResults ($); # view logs +sub recentRsync ($); + +BEGIN +{ + # Clear PATH and related environment variables so that calls to + # external programs do not cause results to be tainted. See + # "perlsec" manual page for details. + + $ENV {'PATH'} = ''; + $ENV {'SHELL'} = '/bin/bash'; + delete $ENV {'ENV'}; +} + +esmith::util::setRealToEffective (); + +$CGI::POST_MAX=1024 * 100; # max 100K posts +$CGI::DISABLE_UPLOADS = 1; # no uploads + +my %conf; +tie %conf, 'esmith::config'; + +my %dungog; +tie %dungog, 'esmith::config', '/home/e-smith/db/dungog'; + +my %accounts; +tie %accounts, 'esmith::config', '/home/e-smith/db/accounts'; + +my %Labels = ('*' => 'Daily', + '1-5' => 'Week days', + '0,6' => 'Week ends', + 'sun' => 'Sunday', + '1' => 'Monday', + '2' => 'Tuesday', + '3' => 'Wednesday', + '4' => 'Thursday', + '5' => 'Friday', + '6' => 'Saturday'); + +my %Labels2 = ('senddirs' => 'send one or more directories to another server', + 'senddirs2self' => 'save directories to self. eg 2nd hardrive', + 'sendservers' => 'send one directory to many servers', + 'receivedirs' => 'receive one or more directories from one server', + 'receiveservers' => 'receive one directory from many servers'); + +my %Labels5 = ('test' => 'Test. Only displays what rsync would do and does no actual copying', + 'verbose' => 'Copies but still gives a verbose display of what it is doing', + 'stats' => 'Copies and just displays statistics', + 'quiet' => 'Copies and does no display at all'); + +my %Labels4 = ('none' => 'no limit', + '10' => '10 kb/s', + '25' => '25 kb/s', + '50' => '50 kb/s', + '100' => '100 kb/s', + '500' => '500 kb/s', + '1000' => '1 mb/s', + '2000' => '2 mb/s', + '4000' => '4 mb/s', + '6000' => '6 mb/s', + '10000' => '10 mb/s', + '20000' => '20 mb/s'); + +my %Labels3 = ('*/2' => 'Each 2 hours', + '*/4' => 'Each 4 hours', + '*/8' => 'Each 8 hours', + '*/12' => 'Each 12 hours', + '9-17' => '9am-5pm', + '8-18' => '8am-6pm', + '1' => '1 am', + '2' => '2 am', + '3' => '3 am', + '4' => '4 am', + '5' => '5 am', + '6' => '6 am', + '7' => '7 am', + '8' => '8 am', + '9' => '9 am', + '10' => '10 am', + '11' => '11 am', + '12' => 'noon', + '13' => '1 pm', + '14' => '2 pm', + '15' => '3 pm', + '16' => '4 pm', + '17' => '5 pm', + '18' => '6 pm', + '19' => '7 pm', + '20' => '8 pm', + '21' => '9 pm', + '22' => '10 pm', + '23' => '11 pm'); + +#------------------------------------------------------------ +# examine state parameter and display the appropriate form +#------------------------------------------------------------ +my $q = new CGI; + +if (! grep (/^state$/, $q->param)) +{ + showInitial ($q, ''); +} + +elsif ($q->param ('state') eq "choosesub") +{ + if ($q->param ('action') eq "Save Settings") + { + performModifyRsync ($q); + } + + if ($q->param ('action') eq "Save Job") + { + performShowAnon ($q); + } + + elsif ($q->param ('action') eq "Run this rsync job now") + { + performRsyncNow ($q); + } +} + +elsif ($q->param ('state') eq "help") +{ + showHelp ($q); +} + +#secure form +elsif ($q->param ('state') eq "modifyrsync") +{ + modifyRsync ($q, ''); +} +elsif ($q->param ('state') eq "performmodify") +{ + performModifyRsync ($q); +} + +#tasks +elsif ($q->param ('state') eq "deletersync") +{ + deleteRsync ($q); +} +elsif ($q->param ('state') eq "deleteitem") +{ + deleteItem ($q); +} +#show results +elsif ($q->param ('state') eq "rsyncNowResults") +{ + rsyncNowResults ($q); +} +elsif ($q->param ('state') eq "recentRsync") +{ + recentRsync ($q); +} + +#ibay setup form +elsif ($q->param ('state') eq "showibay") +{ + showIbay ($q, ''); +} +elsif ($q->param ('state') eq "performAnon") +{ + performAnon ($q); +} +elsif ($q->param ('state') eq "modifyibay") +{ + modifyIbay ($q); +} + +#anon form +elsif ($q->param ('state') eq "showAnon") +{ + showAnon ($q, ''); +} +elsif ($q->param ('state') eq "performShowAnon") +{ + performShowAnon ($q); +} + +else +{ + esmith::cgi::genStateError ($q, \%conf); +} + +exit (0); + +######################################################################### +sub showInitial ($$) +{ + my ($q, $msg) = @_; + + if ($msg eq '') + { + esmith::cgi::genHeaderNonCacheable + ($q, \%conf, 'Rsync file transfer'); + } + else + { + esmith::cgi::genHeaderNonCacheable + ($q, \%conf, 'Rsync file transfer'); + + print $q->h4 ('Operation status report'); + print $q->p ($msg); + print $q->hr; + } + + print $q->startform (-method => 'POST', -action => $q->url (-absolute => 1)); + + #short intro + print $q->Tr (esmith::cgi::genTextRow ($q, $q->p ('Automatically mirror your data to another server. + Use either secure rsync using ssh keys, or anonymous rsync. + Transfers have been scheduled for sets highlighted in red. + You also have a transfer now option for each set'))); + + #check to see if cron is running + unless ( -e "/var/run/crond.pid" ) + { + print $q->p (esmith::cgi::genSmallRedCell ($q, "NOTE: cron is not ". + "running. It really should be, besides not automating our backups, lots of system tasks are not ". + "performed. As root, on the command line, type 'service crond start' then 'ps -A' to check.")); + } + + #configure and select set + print $q->h4 ('Transfer Sets Summary - Send and Retrieve files via rsync using SSH'); + + print $q->p ($q->a ({href => $q->url (-absolute => 1) . "?state=modifyrsync&&rsync=new"}, + 'Click here'), + 'to add a transfer set.'); + + print ""; + + #header + print $q->Tr (esmith::cgi::genSmallCell ($q, $q->b ('Description')), + esmith::cgi::genSmallCell ($q, $q->b ('Frequency')), + esmith::cgi::genSmallCell ($q, $q->b ('Time')), + $q->td (' '), + $q->td (' ')); + + #get rsyncs/shares + my @rsyncs = (); + foreach (sort keys %dungog) + { + push (@rsyncs, $_) + if (db_get_type(\%dungog, $_) eq "rsync"); + } + + my $rsync = ''; + foreach $rsync (sort @rsyncs) + { + my $desc = db_get_prop(\%dungog, $rsync, "desc") || ''; + my $freq = db_get_prop(\%dungog, $rsync, "freq") || ''; + my $day = db_get_prop(\%dungog, $rsync, "day") || ''; + my $hour = db_get_prop(\%dungog, $rsync, "hour") || ''; + my $min = db_get_prop(\%dungog, $rsync, "min") || ''; + + #modify frequency value for display + my $daylabel = ($Labels{$day}); + if ($freq eq 'hourly') + { + $hour = '*'; + } + elsif ($freq eq 'on') + { + $freq = $daylabel; + } + + if ($freq eq 'off') + { + print $q->Tr (esmith::cgi::genSmallCell ($q, $desc), + esmith::cgi::genSmallCell ($q, $freq), + esmith::cgi::genSmallCell ($q, ''), + esmith::cgi::genSmallCell ($q, + $q->a ({href => $q->url (-absolute => 1) + . "?state=modifyrsync&&rsync=" + . $rsync}, 'Modify/Run...')), + esmith::cgi::genSmallCell ($q, + $q->a ({href => $q->url (-absolute => 1) + . "?state=deletersync&&rsync=" + . $rsync}, 'Remove...'))); + } + else + { + print $q->Tr (esmith::cgi::genSmallCell ($q, $desc), + esmith::cgi::genSmallRedCell ($q, $freq), + esmith::cgi::genSmallRedCell ($q, $hour.':'.$min), + esmith::cgi::genSmallCell ($q, + $q->a ({href => $q->url (-absolute => 1) + . "?state=modifyrsync&&rsync=" + . $rsync}, 'Modify/Run...')), + esmith::cgi::genSmallCell ($q, + $q->a ({href => $q->url (-absolute => 1) + . "?state=deletersync&&rsync=" + . $rsync}, 'Remove...'))); + } + } + + print '
'; + + print '
'; + + #configure and select set + print $q->h4 ('Transfer Sets Summary - Anonymous rsync retrieve from remote'); + + print $q->p ($q->a ({href => $q->url (-absolute => 1) . "?state=showAnon&&rsync=new"}, + 'Click here'), + 'to add a transfer set.'); + + print ""; + + #header + print $q->Tr (esmith::cgi::genSmallCell ($q, $q->b ('Description')), + esmith::cgi::genSmallCell ($q, $q->b ('Frequency')), + esmith::cgi::genSmallCell ($q, $q->b ('Time')), + $q->td (' '), + $q->td (' ')); + + #get rsyncs/shares + my @rsyncAnon = (); + foreach (sort keys %dungog) + { + push (@rsyncAnon, $_) + if (db_get_type(\%dungog, $_) eq "rsyncAnon"); + } + + $rsync = ''; + foreach $rsync (sort @rsyncAnon) + { + my $desc = db_get_prop(\%dungog, $rsync, "desc") || ''; + my $freq = db_get_prop(\%dungog, $rsync, "freq") || ''; + my $day = db_get_prop(\%dungog, $rsync, "day") || ''; + my $hour = db_get_prop(\%dungog, $rsync, "hour") || ''; + my $min = db_get_prop(\%dungog, $rsync, "min") || ''; + + #modify frequency value for display + my $daylabel = ($Labels{$day}); + if ($freq eq 'hourly') + { + $hour = '*'; + } + elsif ($freq eq 'on') + { + $freq = $daylabel; + } + + if ($freq eq 'off') + { + print $q->Tr (esmith::cgi::genSmallCell ($q, $desc), + esmith::cgi::genSmallCell ($q, $freq), + esmith::cgi::genSmallCell ($q, ''), + esmith::cgi::genSmallCell ($q, + $q->a ({href => $q->url (-absolute => 1) + . "?state=showAnon&&rsync=" + . $rsync}, 'Modify/Run...')), + esmith::cgi::genSmallCell ($q, + $q->a ({href => $q->url (-absolute => 1) + . "?state=deletersync&&rsync=" + . $rsync}, 'Remove...'))); + } + else + { + print $q->Tr (esmith::cgi::genSmallCell ($q, $desc), + esmith::cgi::genSmallRedCell ($q, $freq), + esmith::cgi::genSmallRedCell ($q, $hour.':'.$min), + esmith::cgi::genSmallCell ($q, + $q->a ({href => $q->url (-absolute => 1) + . "?state=showAnon&&rsync=" + . $rsync}, 'Modify/Run...')), + esmith::cgi::genSmallCell ($q, + $q->a ({href => $q->url (-absolute => 1) + . "?state=deletersync&&rsync=" + . $rsync}, 'Remove...'))); + } + } + print '
'; + + print '
'; + + #configure and select set + print $q->h4 ('Configure your server as an Anonymous Rsync server'); + + # check to see if e-smith-rsyncd is installed + # old code - unless ( -e "/etc/e-smith/events/actions/conf-rsyncd" ) + # use existing rsync key to decide whether the following section can be configured + # test for rsyncd property + my $rsyncd_status = db_get(\%conf, "rsyncd"); + + unless ($rsyncd_status ne '') + { + print $q->p (esmith::cgi::genSmallCell ($q, 'To make files available for download by + Anonymous Rsync to you need to install + smeserver-shared-folders, see help below')); + } + else + { + print $q->p ($q->a ({href => $q->url (-absolute => 1) . "?state=showibay"}, + 'Click here'), + 'to view which ibays are setup to allow anonymous rsync + downloads. You can also enable or disable anonymous rsync to your server'); + } + + print $q->endform; + print $q->p ($q->hr, $q->font ({size => "-1"}, "Copyright dungog.net", + $q->a ({href => $q->url (-absolute => 1) . "?state=help"}, 'Rsync help'), " ...")); + + print ''; + print ''; + print $q->end_html; +} + +# -------------********* secure Sets ***********--------------------------- + +sub modifyRsync ($$) +{ + my ($q, $msg) = @_; + my $rsync = $q->param ('rsync') ||''; + my $editlocaldir = $q->param ('editlocaldir') ||''; + my $editremoteserver = $q->param ('editremoteserver') ||''; + my $editremotedir = $q->param ('editremotedir') ||''; + + if ($msg eq '') + { + esmith::cgi::genHeaderNonCacheable + ($q, \%conf, 'Modify the selected rsync job.'); + } + else + { + esmith::cgi::genHeaderNonCacheable + ($q, \%conf, 'Modify the selected rsync job.'); + + print $q->p ($msg); + print $q->hr; + } + + if ($rsync eq 'new') + { + my $random = int(rand(999999)); + $rsync = 'rsync'.$random; + } + + # find system users + my @userlist = (''); + foreach (keys %accounts) + { + push (@userlist, $_) + if (db_get_type(\%accounts, $_) eq 'user'); + } + + my $localdirlist = db_get_prop(\%dungog, "$rsync", "localdirlist") || 'none'; + my @localdirlist = split(/,/, $localdirlist); + my $remoteserverlist = db_get_prop(\%dungog, "$rsync", "remoteserverlist") || 'none'; + my @remoteserverlist = split(/,/, $remoteserverlist); + my $remotedirlist = db_get_prop(\%dungog, "$rsync", "remotedirlist") || 'none'; + my @remotedirlist = split(/,/, $remotedirlist); + + print $q->startform (-method => 'POST', -action => $q->url (-absolute => 1)); + + print $q->table ({border => 0, cellspacing => 0, cellpadding => 4}, + + esmith::cgi::genTextRow ($q, $q->p ($q->a ({href => $q->url (-absolute => 1) . "?state=help"}, + 'Please review'), + "the help page for explanations and suggestions on how to setup.")), + + esmith::cgi::genNameValueRow ($q, + "Description", + "desc", + db_get_prop(\%dungog, $rsync, "desc") || '',), + + esmith::cgi::genWidgetRow ($q, "Select a user for rsync to run as", + $q->popup_menu (-name => "user", + -values => [ sort @userlist , 'root' ], + -default => db_get_prop(\%dungog, $rsync, "user") || '')), + + esmith::cgi::genWidgetRow ($q, "Method", + $q->popup_menu (-name => "method", + -values => ['senddirs','sendservers','receivedirs','receiveservers','senddirs2self'], + -default => db_get_prop(\%dungog, $rsync, "method") || '', + -labels => \%Labels2)), + + esmith::cgi::genWidgetRow ($q, "Options", + $q->popup_menu (-name => "options", + -values => ['test','verbose','stats','quiet'], + -default => db_get_prop(\%dungog, $rsync, "options") || 'test', + -labels => \%Labels5))); + + my $delete = db_get_prop(\%dungog, $rsync, "delete") || 'no'; + my $tick = ''; + if ($delete eq 'on') + { + $tick = "checked"; + } + + print $q->Tr ($q->td (""), + esmith::cgi::genTextRow ($q, ('Delete files that do not exist on the sending side. Always use Testing option first.'))); + + my $compress = db_get_prop(\%dungog, $rsync, "compress") || 'no'; + $tick = ''; + if ($compress eq 'on') + { + $tick = "checked"; + } + + print $q->Tr ($q->br); + print $q->Tr ($q->td (""), + esmith::cgi::genTextRow ($q, ('Compress file data. This option is useful on slow links.'))); + + my $mail = db_get_prop(\%dungog, $rsync, "mail") || ''; + $tick = ''; + if ($mail eq 'on') + { + $tick = "checked"; + } + + print $q->Tr ($q->br); + print $q->Tr ($q->td (""), + esmith::cgi::genTextRow ($q, ('If automating, email any output to admin.'))); + + my $dbdump = db_get_prop(\%dungog, $rsync, "dbdump") || ''; + $tick = ''; + if ($dbdump eq 'on') + { + $tick = "checked"; + } + + print $q->Tr ($q->br); + print $q->Tr ($q->td (""), + esmith::cgi::genTextRow ($q, ('Include mysql tables in your transfer - + requires you to send the dir /home/e-smith/db/mysql or a parent dir.'))); + + print $q->p (esmith::cgi::genWidgetRow ($q, "Limit I/O bandwidth, KBytes per second", + $q->popup_menu (-name => 'bwlimit', + -values => ['none','10','25','50','100','500','1000','2000','4000','6000','10000','20000'], + -default => db_get_prop(\%dungog, $rsync, "bwlimit") || 'none', + -labels => \%Labels4))); + + print $q->table ({border => 0, cellspacing => 0, cellpadding => 4}, + + esmith::cgi::genTextRow ($q, ("Create /opt/$rsync.ex and/or /opt/$rsync.in + to exclude or include directories or files from this rsync job, + see help below. If either file exists the options are added into the script below after a panel save.")), + + esmith::cgi::genTextRow ($q, ('To run a command or shell script before or after the + rsync job enter the command below. Leave blank for no command.')), + + esmith::cgi::genNameValueRow ($q, + "Pre rsync command, eg, /usr/bin/moveaway", + "pre", + db_get_prop(\%dungog, $rsync, "pre") || '',), + + esmith::cgi::genNameValueRow ($q, + "Post rsync command, eg, /usr/bin/moveback", + "post", + db_get_prop(\%dungog, $rsync, "post") || '',), + + esmith::cgi::genTextRow ($q, $q->p ("Local server - $conf{SystemName}.$conf{DomainName}")), + + #local directory + esmith::cgi::genTextRow ($q, $q->p ("Local directory"))); + print ""; + foreach (sort @localdirlist) + { + print $q->Tr (esmith::cgi::genSmallCell ($q, $_), + esmith::cgi::genSmallCell ($q, + $q->a ({href => $q->url (-absolute => 1) + . "?state=modifyrsync&&rsync=$rsync&&editlocaldir=" + . $_}, 'Copy & Edit... ')), + esmith::cgi::genSmallCell ($q, + $q->a ({href => $q->url (-absolute => 1) + . "?state=deleteitem&&type=localdir&&rsync=$rsync&&item=" + . $_}, 'Remove...'))); + } + print '
'; + + print $q->table ({border => 0, cellspacing => 0, cellpadding => 4}, + esmith::cgi::genNameValueRow ($q, + "add directory, eg,/home/e-smith/files/ibays/vital", + "localdir", + "$editlocaldir",), + + #remote servers + esmith::cgi::genTextRow ($q, $q->p ('Remote user@server user is required. Can be different to local user
+ See Help - Changing the port for using different ports'))); + + print $q->table ({border => 1, cellspacing => 1, cellpadding => 4}); + foreach (sort @remoteserverlist) + { + print $q->Tr (esmith::cgi::genSmallCell ($q, $_), + esmith::cgi::genSmallCell ($q, + $q->a ({href => $q->url (-absolute => 1) + . "?state=modifyrsync&&rsync=$rsync&&editremoteserver=" + . $_}, 'Copy & Edit... ')), + esmith::cgi::genSmallCell ($q, + $q->a ({href => $q->url (-absolute => 1) + . "?state=deleteitem&&type=remoteserver&&rsync=$rsync&&item=" + . $_}, 'Remove...'))); + } + print ''; + + print $q->table ({border => 0, cellspacing => 0, cellpadding => 4}, + esmith::cgi::genNameValueRow ($q, + "add server", + "remoteserver", + "$editremoteserver",), + + #remote directory + esmith::cgi::genTextRow ($q, $q->p ('Remote directory'))); + + print $q->table ({border => 1, cellspacing => 1, cellpadding => 4}); + foreach (sort @remotedirlist) + { + print $q->Tr (esmith::cgi::genSmallCell ($q, $_), + esmith::cgi::genSmallCell ($q, + $q->a ({href => $q->url (-absolute => 1) + . "?state=modifyrsync&&rsync=$rsync&&editremotedir=" + . $_}, 'Copy & Edit... ')), + esmith::cgi::genSmallCell ($q, + $q->a ({href => $q->url (-absolute => 1) + . "?state=deleteitem&&type=remotedir&&rsync=$rsync&&item=" + . $_}, 'Remove...'))); + } + print ''; + + print $q->table ({border => 0, cellspacing => 0, cellpadding => 4}, + esmith::cgi::genNameValueRow ($q, + "add directory", + "remotedir", + "$editremotedir",)); + + #extra table just to align fields better + print ''; + print $q->table ({border => 0, cellspacing => 0, cellpadding => 4}, + + #time for automation + #esmith::cgi::genTextRow ($q, $q->p ('Timing')), + + esmith::cgi::genTextRow ($q, $q->p ('Select the time and enable to automate
+ Alternatively add this job to cron using the Cron panel, the command to give is
+ '."/usr/bin/dungogrsync-$rsync")), + + esmith::cgi::genWidgetRow ($q, "Automatic backups", + $q->popup_menu (-name => 'freq', + -values => ['off','on','hourly'] , + -default => db_get_prop(\%dungog, $rsync, "freq") || 'off',)), + + esmith::cgi::genWidgetRow ($q, "Backup time, minute", + $q->popup_menu (-name => 'min', + -values => ['1','4','7','10','13','16','19','22','25','28','31','33','36','39','42','45','48','51','54','57','59'] , + -default => db_get_prop(\%dungog, $rsync, "min") || '16',)), + + esmith::cgi::genWidgetRow ($q, "Backup time, 24 hour", + $q->popup_menu (-name => 'hour', + -values => ['*/2','*/4','*/8','*/12','8-18','9-17','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23'] , + -default => db_get_prop(\%dungog, $rsync, "hour") || '3', + -labels => \%Labels3)), + + esmith::cgi::genWidgetRow ($q, "Backup time, day of week", + $q->popup_menu (-name => 'day', + -values => ['*','1-5','0,6','sun','1','2','3','4','5','6'] , + -default => db_get_prop(\%dungog, $rsync, "day") || '4', + -labels => \%Labels))); + + print $q->Tr (esmith::cgi::genButtonRow ($q, + $q->submit (-name => 'action', -value => 'Save Settings'))); + + print $q->Tr (esmith::cgi::genTextRow ($q, $q->p ('After saving your settings + you can run the backup immediately by clicking below. + You should also save after creating or deleting includes or excludes + or relevant db commands eg override allow'))); + + print $q->Tr (esmith::cgi::genButtonRow ($q, + $q->submit (-name => 'action', -value => 'Run this rsync job now'))); + + if ( -e "/usr/bin/dungogrsync-$rsync" ) + { + print $q->h4 ("Current rsync script file - /usr/bin/dungogrsync-$rsync"); + print ""; + + print ''; + print "
";
+      open (INF,"/usr/bin/dungogrsync-$rsync")
+      or die ("can't open rsync script: $1");
+
+      while ()
+      {
+          print "$_";
+      }
+
+      close INF;
+      print "
\n"; + } + + print '
'; + print ''; + print $q->hidden (-name => 'state', -override => 1, -default => 'choosesub'); + print $q->hidden (-name => 'rsync', -override => 1, -default => $rsync); + + print $q->endform; + print $q->p ($q->hr, $q->font ({size => "-1"}, "Copyright dungog.net", + $q->a ({href => $q->url (-absolute => 1) . "?state=help"}, 'Rsync help'), " ...")); + + print ''; + print ''; + print $q->end_html; +} + +sub performModifyRsync ($) +{ + my ($q) = @_; + my $rsync = $q->param ('rsync'); + my $desc = $q->param ('desc') || ''; + my $method = $q->param ('method') || ''; + my $options = $q->param ('options') || ''; + my $delete = $q->param ('delete') || ''; + my $compress = $q->param ('compress') || ''; + my $mail = $q->param ('mail') || ''; + my $dbdump = $q->param ('dbdump') || ''; + my $pre = $q->param ('pre') || ''; + my $post = $q->param ('post') || ''; + my $user = $q->param ('user') || ''; + my $localdir = $q->param ('localdir') || ''; + my $remoteserver = $q->param ('remoteserver')|| ''; + my $remotedir = $q->param ('remotedir') || ''; + my $freq = $q->param ('freq') || ''; + my $hour = $q->param ('hour') || ''; + my $min = $q->param ('min') || ''; + my $day = $q->param ('day') || ''; + my $bwlimit = $q->param ('bwlimit') || ''; + + if ($rsync =~ /^([a-z][\-\_\.a-z0-9]*)$/) + { + $rsync = $1; + } + + #check for invalid characters + foreach ($localdir, $remoteserver, $remotedir) + { + if ($_ =~ /^([\/\-\_\.\ \"\@A-Za-z0-9]*)$/) + { + $_ = $1; + } + else + { + modifyRsync ($q, "Error: You have invalid characters [$_], use only /\-\_\.A-Za-z0-9"); + return; + } + } + + #test that non blank entries are directories or files, then add to $localdirlist + if ( $localdir ne '' ) + { + my $test = $localdir; + $test =~ s/"//g; + unless ( -e $test ) + { + modifyRsync ($q, "Error, local server directory or file does not exist. [$test]"); + return; + } + else + { + my $localdirlist = db_get_prop(\%dungog, $rsync, "localdirlist"); + db_set_prop(\%dungog, $rsync, "localdirlist", "$localdir,$localdirlist"); + } + } + + #add non blank entries to $remoteserverlist + if ( $remoteserver ne '' ) + { + my $remoteserverlist = db_get_prop(\%dungog, $rsync, "remoteserverlist"); + db_set_prop(\%dungog, $rsync, "remoteserverlist", "$remoteserver,$remoteserverlist"); + } + + #add non blank entries to $remotedirlist + if ( $remotedir ne '' ) + { + my $remotedirlist = db_get_prop(\%dungog, $rsync, "remotedirlist"); + db_set_prop(\%dungog, $rsync, "remotedirlist", "$remotedir,$remotedirlist"); + } + + unless (exists $dungog {$rsync}) + { + db_set(\%dungog, $rsync, 'rsync'); + } + db_set_prop(\%dungog, $rsync, "desc", $desc); + db_set_prop(\%dungog, $rsync, "method", $method); + db_set_prop(\%dungog, $rsync, "options", $options); + db_set_prop(\%dungog, $rsync, "delete", $delete); + db_set_prop(\%dungog, $rsync, "compress", $compress); + db_set_prop(\%dungog, $rsync, "user", $user); + db_set_prop(\%dungog, $rsync, "mail", $mail); + db_set_prop(\%dungog, $rsync, "dbdump", $dbdump); + db_set_prop(\%dungog, $rsync, "pre", $pre); + db_set_prop(\%dungog, $rsync, "post", $post); + db_set_prop(\%dungog, $rsync, "freq", $freq); + db_set_prop(\%dungog, $rsync, "day", $day); + db_set_prop(\%dungog, $rsync, "hour", $hour); + db_set_prop(\%dungog, $rsync, "min", $min); + db_set_prop(\%dungog, $rsync, "bwlimit", $bwlimit); + + system ("/sbin/e-smith/signal-event conf-dungogrsync $rsync") == 0 + or die ("Error occurred while updating system configuration.\n"); + + system ("/sbin/e-smith/expand-template /etc/crontab") == 0 + or die ("Error occurred expanding crontab.\n"); + + modifyRsync ($q, 'settings saved'); + return; + +} + +# -------------********* secure Sets ***********--------------------------- + +sub showAnon ($$) +{ + my ($q, $msg) = @_; + my $rsync = $q->param ('rsync') ||''; + + if ($msg eq '') + { + esmith::cgi::genHeaderNonCacheable + ($q, \%conf, 'Modify the selected rsync job.'); + } + else + { + esmith::cgi::genHeaderNonCacheable + ($q, \%conf, 'Modify the selected rsync job.'); + + print $q->p ($msg); + print $q->hr; + } + + if ($rsync eq 'new') + { + my $random = int(rand(999999)); + $rsync = 'rsync'.$random; + } + + print $q->startform (-method => 'POST', -action => $q->url (-absolute => 1)); + + print $q->table ({border => 0, cellspacing => 0, cellpadding => 4}, + + esmith::cgi::genTextRow ($q, $q->p ('General')), + + esmith::cgi::genTextRow ($q, $q->p ('This form allows you to mirror a set of files from a remote + server to your local server, when the remote files are being made + available with a rsync server.')), + + esmith::cgi::genNameValueRow ($q, + "Description", + "desc", + db_get_prop(\%dungog, $rsync, "desc") || '',), + + esmith::cgi::genWidgetRow ($q, "Options", + $q->popup_menu (-name => "options", + -values => ['test','verbose','stats','quiet'], + -default => db_get_prop(\%dungog, $rsync, "options") || 'stats', + -labels => \%Labels5))); + + my $compress = db_get_prop(\%dungog, $rsync, "compress") || 'no'; + my $tick = ''; + if ($compress eq 'on') + { + $tick = "checked"; + } + + print $q->Tr ($q->br); + print $q->Tr ($q->td (""), + esmith::cgi::genTextRow ($q, ('Compress file data, This option is useful on slow links.'))); + + + my $mail = db_get_prop(\%dungog, $rsync, "mail") || ''; + $tick = ''; + if ($mail eq 'on') + { + $tick = "checked"; + } + + print $q->Tr ($q->br); + print $q->Tr ($q->td (""), + esmith::cgi::genTextRow ($q, ('If automating, email any output to admin.'))); + + print $q->p (esmith::cgi::genWidgetRow ($q, "limit I/O bandwidth, KBytes per second", + $q->popup_menu (-name => 'bwlimit', + -values => ['none','1','2.5','5','10','25','50','100','1000'], + -default => db_get_prop(\%dungog, $rsync, "bwlimit") || 'none', + -labels => \%Labels4))); + + print $q->Tr ($q->br); + + print $q->Tr (esmith::cgi::genTextRow ($q, $q->p ('Locations'))); + + #remote server + print $q->Tr (esmith::cgi::genTextRow ($q, $q->p ('The remote server is the source you will be mirroring, + it will be in the form domain.dom::directory'))); + + print $q->Tr (esmith::cgi::genNameValueRow ($q, + "Remote server and directory", + "remoteserver", + db_get_prop(\%dungog, $rsync, "remoteserver") || '',)); + + print $q->Tr (esmith::cgi::genTextRow ($q, $q->p ('The local directory is the destination for the copy + enter an existing directory on your local server, + eg. /home/e-smith/files/ibays/anibay/files/data'))); + #local directory + print $q->Tr (esmith::cgi::genNameValueRow ($q, + "Local directory", + "localdir", + db_get_prop(\%dungog, $rsync, "localdir") || '',)); + + #extra table just to align fields better + print '
'; + print $q->table ({border => 0, cellspacing => 0, cellpadding => 4}, + + #time for automation + #esmith::cgi::genTextRow ($q, $q->p ('Timing')), + + esmith::cgi::genTextRow ($q, $q->p ('Select the time, and day or days to run. + Hourly runs each hour at the nominated minutes past the hour. + Enabling automatic backups by selecting on, + allows you to choose which days to run.')), + + esmith::cgi::genWidgetRow ($q, "Automatic backups", + $q->popup_menu (-name => 'freq', + -values => ['off','on','hourly'] , + -default => db_get_prop(\%dungog, $rsync, "freq") || 'off',)), + + esmith::cgi::genWidgetRow ($q, "Backup time, minute", + $q->popup_menu (-name => 'min', + -values => ['1','4','7','10','13','16','19','22','25','28','31','33','36','39','42','45','48','51','54','57','59'] , + -default => db_get_prop(\%dungog, $rsync, "min") || '16',)), + + esmith::cgi::genWidgetRow ($q, "Backup time, 24 hour", + $q->popup_menu (-name => 'hour', + -values => ['1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23'] , + -default => db_get_prop(\%dungog, $rsync, "hour") || '3', + -labels => \%Labels3)), + + esmith::cgi::genWidgetRow ($q, "Backup time, day of week", + $q->popup_menu (-name => 'day', + -values => ['*','1-5','0,6','sun','1','2','3','4','5','6'] , + -default => db_get_prop(\%dungog, $rsync, "day") || '4', + -labels => \%Labels)), + + esmith::cgi::genTextRow ($q, $q->p ('Click Save to enable the above settings'))); + + print $q->Tr (esmith::cgi::genButtonRow ($q, + $q->submit (-name => 'action', -value => 'Save Job'))); + + print $q->Tr (esmith::cgi::genTextRow ($q, $q->p ('After saving your settings + you can run the backup immediately by clicking below.'))); + + print $q->Tr (esmith::cgi::genButtonRow ($q, + $q->submit (-name => 'action', -value => 'Run this rsync job now'))); + + print $q->h4 ('Current rsync script file'); + + if ( -e "/usr/bin/dungogrsync-$rsync" ) + { + print ""; + + print ''; + print "
";
+      open (INF,"/usr/bin/dungogrsync-$rsync")
+      or die ("can't open rsync script: $1");
+
+      while ()
+      {
+          print "$_";
+      }
+
+      close INF;
+      print "
\n"; + } + + print '
'; + print ''; + print $q->hidden (-name => 'state', -override => 1, -default => 'choosesub'); + print $q->hidden (-name => 'rsync', -override => 1, -default => $rsync); + + print $q->endform; + print $q->p ($q->hr, $q->font ({size => "-1"}, "Copyright dungog.net", + $q->a ({href => $q->url (-absolute => 1) . "?state=help"}, 'Rsync help'), " ...")); + + print ''; + print ''; + print $q->end_html; +} + +sub performShowAnon ($) +{ + my ($q) = @_; + my $rsync = $q->param ('rsync'); + my $desc = $q->param ('desc') || ''; + my $options = $q->param ('options') || ''; + my $compress = $q->param ('compress') || ''; + my $mail = $q->param ('mail') || ''; + my $localdir = $q->param ('localdir') || ''; + my $remoteserver = $q->param ('remoteserver')|| ''; + my $freq = $q->param ('freq') || ''; + my $hour = $q->param ('hour') || ''; + my $min = $q->param ('min') || ''; + my $day = $q->param ('day') || ''; + my $bwlimit = $q->param ('bwlimit') || ''; + + if ($rsync =~ /^([a-z][\-\_\.a-z0-9]*)$/) + { + $rsync = $1; + } + + if ($desc =~ /^([a-z][\-\_\.a-z0-9]*)$/) + { + $desc = $1; + } + + unless (exists $dungog {$rsync}) + { + db_set(\%dungog, $rsync, 'rsyncAnon'); + } + db_set_prop(\%dungog, $rsync, "desc", $desc); + db_set_prop(\%dungog, $rsync, "options", $options); + db_set_prop(\%dungog, $rsync, "compress", $compress); + db_set_prop(\%dungog, $rsync, "mail", $mail); + db_set_prop(\%dungog, $rsync, "freq", $freq); + db_set_prop(\%dungog, $rsync, "day", $day); + db_set_prop(\%dungog, $rsync, "hour", $hour); + db_set_prop(\%dungog, $rsync, "min", $min); + db_set_prop(\%dungog, $rsync, "bwlimit", $bwlimit); + + #check for invalid characters + if ($remoteserver =~ /^([\/\-\_\.A-Za-z0-9]*::[\/\-\_\.A-Za-z0-9]*)$/) + { + $_ = $1; + } + else + { + showAnon ($q, "Error: You have invalid characters for the remote server [$remoteserver], ". + "use only /\-\_\.A-Za-z0-9 with the domain and directory separated by ::"); + return; + } + + db_set_prop(\%dungog, $rsync, "remoteserver", $remoteserver); + + if ($localdir =~ /^([\/\-\_\.A-Za-z0-9]*)$/) + { + $_ = $1; + } + else + { + showAnon ($q, "Error: You have invalid characters in the local directory [$localdir], use only /\-\_\.A-Za-z0-9"); + return; + } + + #test that local directory exists + unless ( -e "$localdir" ) + { + showAnon ($q, "Error, local server directory does not exist. [$localdir]"); + return; + } + + db_set_prop(\%dungog, $rsync, "localdir", $localdir); + + system ("/sbin/e-smith/signal-event conf-dungogrsyncanon $rsync") == 0 + or die ("Error occurred while updating system configuration.\n"); + + system ("/sbin/e-smith/expand-template /etc/crontab") == 0 + or die ("Error occurred expanding crontab.\n"); + + showAnon ($q, 'settings saved'); + return;} + + +# ------------- ibay anon setup ------------------------ + +sub showIbay ($$) +{ + my ($q, $msg) = @_; + + if ($msg eq '') + { + esmith::cgi::genHeaderNonCacheable + ($q, \%conf, 'Anonymous Rsync'); + } + else + { + esmith::cgi::genHeaderNonCacheable + ($q, \%conf, 'Anonymous Rsync'); + + print $q->h4 ('Operation status report'); + print $q->p ($msg); + print $q->hr; + } + + print $q->startform (-method => 'POST', -action => $q->url (-absolute => 1)); + + #configure and select set + print $q->h4 ('Shared Folders'); + + # setup ibays to be used for anonymous ibay + my @ibayAccounts = (); + foreach (sort keys %accounts) + { + push (@ibayAccounts, $_) + if (db_get_type(\%accounts, $_) eq "share"); + } + + unless (scalar @ibayAccounts) + { + print $q->p ($q->b ('There are no shared folders in the system.')); + } + else + { + #short intro + print $q->p ($q->p ('This is not fully functioning currently.
+ Shared Folders shown in red have Global Access set to
+

Use the Shared Folders panel for finer control

')); + + unless ( -e '/etc/rsyncd.conf') + { + print $q->p ($q->p ('This is not fully functioning currently.
+ It requires smeserver-shared-folders to enable rsyncd
+ Work still required.' + )); + } + + print $q->p ($q->a ({href => $q->url (-absolute => 1) . "?state=recentRsync"}, + 'Click here'), + 'to view logs of recent access to your rsync server.'); + + print "
"; + + print $q->Tr (esmith::cgi::genSmallCell ($q, $q->b ('Name')), + esmith::cgi::genSmallCell ($q, $q->b ('Description')), + esmith::cgi::genSmallCell ($q, $q->b ('Status')), + esmith::cgi::genSmallCell ($q, $q->b ('Modify')) + ); + + my $ibay = ''; + foreach $ibay (sort @ibayAccounts) + { + unless ($ibay eq 'Primary') + { + my $name = db_get_prop(\%accounts, "$ibay", 'Name') || ''; + my $rsyncAccess = db_get_prop(\%accounts, "$ibay", "rsyncAccess") || ''; + +# vvv This whole section can probably go unless we want to set perms on a shared folder +# my $PublicAccess = db_get_prop(\%accounts, "$ibay", "PublicAccess") || ''; +# my $Group = db_get_prop(\%accounts, "$ibay", "Group") || ''; +# my $UserAccess = db_get_prop(\%accounts, "$ibay", "UserAccess") || ''; +# my $perms ='check'; + +# if ($UserAccess eq 'wr-group-rd-everyone') +# { +# $perms = 'ok'; +# } +# elsif ($Group eq 'shared') +# { +# $perms = 'ok'; +# } +# ^^^ To here +# Not sure about this - we should be able to toggle access for each share + +print "
"; + + unless ($rsyncAccess eq 'global') + { + print $q->Tr (esmith::cgi::genSmallCell ($q, $ibay), + esmith::cgi::genSmallCell ($q, $name), + esmith::cgi::genSmallCell ($q, $rsyncAccess), + esmith::cgi::genSmallCell ($q, + $q->a ({href => $q->url (-absolute => 1) + . "?state=modifyibay&&rsyncAccess=global&share=" + . $ibay}, 'Set Global...'))); + } + else + { + print $q->Tr (esmith::cgi::genSmallRedCell ($q, $ibay), + esmith::cgi::genSmallRedCell ($q, $name), + esmith::cgi::genSmallRedCell ($q, $rsyncAccess), + esmith::cgi::genSmallCell ($q, + $q->a ({href => $q->url (-absolute => 1) + . "?state=modifyibay&&rsyncAccess=local&share=" + . $ibay}, 'Set Local...'))); + } + } + } + print '
'; + } + + # enable/disable rsyncd + + print $q->h4 ('Status'); + print $q->p ($q->p ('Disable or enable access to files on your server via Anonymous Rsync')); + + print $q->p (esmith::cgi::genWidgetRow ($q, "Anonymous Rsyncd", + $q->popup_menu (-name => 'status', + -values => ['enabled','disabled'], + -default => db_get_prop(\%conf, 'rsyncd', 'status') || 'disabled'))); + + print $q->p (esmith::cgi::genButtonRow ($q, + $q->submit (-name => 'action', + -value => 'Save'))); + + print $q->hidden (-name => 'state', + -override => 1, + -default => 'performAnon'); + + print $q->endform; + print $q->p ($q->hr, $q->font ({size => "-1"}, "Copyright dungog.net", + $q->a ({href => $q->url (-absolute => 1) . "?state=help"}, 'Rsync help'), " ...")); + + print ''; + print ''; + print $q->end_html; +} + +sub modifyIbay ($) +{ + my ($q) = @_; + my $ibay = $q->param ('share') ||''; + my $rsyncAccess = $q->param ('rsyncAccess') ||'local'; + + if ($ibay =~ /^([a-z][\-\_\.a-z0-9]*)$/) + { + $ibay = $1; + } + + db_set_prop(\%accounts, $ibay, "rsyncAccess", $rsyncAccess); + + system ("/sbin/e-smith/signal-event share-modify $ibay") == 0 + or die ("Error occurred :signal-event share-modify.\n"); + + showIbay ($q, "Successfully modified Shared Folder."); +} +#ibay anon +sub performAnon ($) +{ + my ($q) = @_; + my $status = $q->param ('status') ||''; + + if ($status =~ /^([a-z][\-\_\.a-z0-9]*)$/) + { + $status = $1; + } + + unless (exists $conf {'rsyncd'}) + { + db_set(\%conf, 'rsyncd', 'service'); + } + + db_set_prop(\%conf, 'rsyncd', 'status', $status); + if ($status eq'enabled') { + db_set_prop(\%conf, 'rsyncd', 'access', 'public'); + } + else { + db_set_prop(\%conf, 'rsyncd', 'access', 'private'); + } + + + + system ("/sbin/e-smith/expand-template /etc/rsyncd.conf") == 0 + or die ("Error occurred :expand-template /etc/rsyncd.conf.\n"); + + system ("/sbin/e-smith/signal-event remoteaccess-update") == 0 + or die ("Error occurred :signal-event remoteaccess-update.\n"); + + showIbay ($q, "Successfully altered status."); +} + +sub deleteRsync ($) +{ + my ($q) = @_; + my $rsync = $q->param ('rsync') ||''; + + if ($rsync =~ /^([a-z][\-\_\.a-z0-9]*)$/) + { + $rsync = $1; + } + + db_delete(\%dungog, "$rsync"); + + system ("/sbin/e-smith/signal-event conf-dungogrsync $rsync") == 0 + or die ("Error occurred :conf-dungogrsync $rsync.\n"); + system ("/bin/rm /usr/bin/dungogrsync-$rsync") == 0 + or die ("Error occurred :rm /usr/bin/dungogrsync.\n"); + + showInitial ($q, "Successfully removed rsync job."); +} + +sub deleteItem ($) +{ + my ($q) = @_; + + my $type = $q->param ('type') ||''; + my $item = $q->param ('item') ||''; + my $rsync = $q->param ('rsync') ||''; + my @add = (); + my @list = (); + + if ($rsync =~ /^([a-z][\-\_\.a-z0-9]*)$/) + { + $rsync = $1; + } + + if ($type eq 'localdir') + { + my $localdirlist = db_get_prop(\%dungog, "$rsync", "localdirlist") || 'none'; + my @localdirlist = split(/,/, $localdirlist); + + foreach (@localdirlist) + { + unless ($_ eq $item) { push(@add, "$_") } + @list = join(',', @add); + } + + db_set_prop(\%dungog, $rsync, "localdirlist", "@list"); + } + + if ($type eq 'remoteserver') + { + my $remoteserverlist = db_get_prop(\%dungog, "$rsync", "remoteserverlist") || 'none'; + my @remoteserverlist = split(/,/, $remoteserverlist); + + foreach (@remoteserverlist) + { + unless ($_ eq $item) { push(@add, "$_") } + @list = join(',', @add); + } + + db_set_prop(\%dungog, $rsync, "remoteserverlist", "@list"); + } + + if ($type eq 'remotedir') + { + my $remotedirlist = db_get_prop(\%dungog, "$rsync", "remotedirlist") || 'none'; + my @remotedirlist = split(/,/, $remotedirlist); + + foreach (@remotedirlist) + { + unless ($_ eq $item) { push(@add, "$_") } + @list = join(',', @add); + } + + db_set_prop(\%dungog, $rsync, "remotedirlist", "@list"); + } + + + system ("/sbin/e-smith/signal-event conf-dungogrsync $rsync") == 0 + or die ("Error occurred while updating system configuration.\n"); + + system ("/sbin/e-smith/expand-template /etc/crontab") == 0 + or die ("Error occurred expanding crontab.\n"); + + modifyRsync ($q, "Settings saved, $item removed"); + +} + +#backup now any backupset +sub performRsyncNow ($) +{ + my ($q) = @_; + my $rsync = $q->param ('rsync'); + my $user = $q->param ('user'); + + if ($rsync =~ /^([a-z][\-\_\.a-z0-9]*)$/) + { + $rsync = $1; + } + + if ($user =~ /^([a-z][\-\_\.a-z0-9]*)$/) + { + $user = $1; + } + + esmith::util::backgroundCommand (1, "/sbin/e-smith/signal-event", "run-rsync", "$rsync", "$user"); + + esmith::cgi::genHeaderNonCacheable + ($q, \%conf, "Backup request initiated."); + + print $q->p ($q->a ({href => $q->url (-absolute => 1) . "?state=rsyncNowResults"}, + 'Click here'), + 'for progressive information on the transfer.'); + + print $q->endform; + print $q->p ($q->hr, $q->font ({size => "-1"}, "Copyright dungog.net", + $q->a ({href => $q->url (-absolute => 1) . "?state=help"}, 'Rsync help'), " ...")); + + print ''; + print ''; + print $q->end_html; +} + +sub rsyncNowResults ($) +{ + my ($q) = @_; + + esmith::cgi::genHeaderNonCacheable + ($q, \%conf, "Backup request initiated."); + + print $q->startform (-method => 'POST', -action => $q->url (-absolute => 1)); + + print $q->h4 ('Current rsync activity file'); + + print $q->p ($q->a ({href => $q->url (-absolute => 1) . "?state=rsyncNowResults"}, + 'Click here'), + 'to refresh this page for progessive information.'); + + if ( -e "/var/log/dungogrsyncnow" ) + { + print ""; + + print ''; + print "
";
+      open (INF,"/var/log/dungogrsyncnow")
+      or die ("can't open rsync log file: $1");
+
+      while ()
+      {
+          print "$_";
+      }
+
+      close INF;
+      print "
\n"; + } + + print '
'; + print ''; + print $q->endform; + print $q->p ($q->hr, $q->font ({size => "-1"}, "Copyright dungog.net", + $q->a ({href => $q->url (-absolute => 1) . "?state=help"}, 'Rsync help'), " ...")); + + print ''; + print ''; + print $q->end_html; + +} + +sub recentRsync ($) +{ + my ($q) = @_; + + esmith::cgi::genHeaderNonCacheable + ($q, \%conf, "Recent rsync activity"); + + system ("/bin/cat /var/log/messages |/bin/grep rsyncd > /tmp/recentrsync") == 0 + or die ("Error occurred viewing usage.\n"); + + print $q->startform (-method => 'POST', -action => $q->url (-absolute => 1)); + + if ( -e "/tmp/recentrsync" ) + { + print "
"; + + print ''; + print "
";
+      open (INF,"/tmp/recentrsync")
+      or die ("can't open rsync log file: $1");
+
+      while ()
+      {
+          print "$_";
+      }
+
+      close INF;
+      print "
\n"; + } + + print '
'; + print ''; + print $q->endform; + print $q->p ($q->hr, $q->font ({size => "-1"}, "Copyright dungog.net", + $q->a ({href => $q->url (-absolute => 1) . "?state=help"}, 'Rsync help'), " ...")); + + print ''; + print ''; + print $q->end_html; + +} + +sub showHelp ($) +{ + my ($q) = @_; + + esmith::cgi::genHeaderNonCacheable + ($q, \%conf, 'Rsync Help'); + + print $q->startform (-method => 'POST', + -action => $q->url (-absolute => 1)); + + print $q->table ({border => 0, cellspacing => 0, cellpadding => 4}, + + esmith::cgi::genTextRow ($q, $q->p ('
+* General
+* Secure rsync
+* SSH keys
+* Changing the port
+* Rsync Anonymous server
+* Rsync Anonymous client
+* Exclude / Include syntax
+* Advanced
+
+

General

+Transfer files between your sme server and other servers with ssh and rsync installed. +Automate the process using a secure ssh connection. +Distribute to or collect data from other servers automatically. + +

Secure rsync

+Safeguards +To prevent server resources being overused only one rsync job is +permitted to run at once, this can be overridden with the db command +db dungog setprop rsync overlap allow + +Emails to admin warn of this and other errors, and advise of success, please check for them. + +Method +For multiple directory or server transfers it could get very confusing, +so only enter multiple entries for one catagory, if you enter extra entries +only one is used. See the advanced section below for workarounds + +Notes +You can transfer a single file instead of a directory. +Enclose directories or filenames that include spaces with a double quote + +Save the panel settings in stages, it is frustrating to have to re-enter data +when you get an error becasue your local path/filename is wrong + +Remember to remove the extra server or directory record after using the copy&Edit... link + +Rsync will attempt to transfer data at the I/O bandwith rate, +the actual rate depends on network traffic and hardware + +

SSH Keys

+To automate the transfer you need to establish a secure connection +without being prompted for a password. To connect with ssh to the user +on a remote server you need to place the public key of whichever user +you are using on this server into ~/.ssh/authorized_keys on the remote user/server. + +cd /home/e-smith/files/users/dummy/.ssh +ssh-keygen -t rsa [accept file name id_rsa][don\'t enter a passphrase] +ssh dummy@remote-server.net mkdir .ssh +scp id_rsa.pub dummy@remote-server.net:.ssh/dummy.localserver.pub +ssh dummy@remote-server.net +cd .ssh +cat dummy.localserver.pub >> authorized_keys +[or for the first key +scp id_rsa.pub dummy@remote-server.net:.ssh/authorized_keys ] + +now you should be able to "ssh dummy@remote-server.net" without a passord prompt + +

Changing the port

to connect to a remote server + +dungog-rsync and dungog-backup +can use a db setting to find the ssh port of your remote servers + +set the port for any server with the following commands + +run this once +# /sbin/e-smith/db dungog set remoteport setting + +then for each server add a matching server entry +# /sbin/e-smith/db dungog setprop remoteport root@mail.server2.com 2211 + +verify +# /sbin/e-smith/db dungog show remoteport + remoteport=setting + root@mail.server2.com=2211 + root@www.server3.com=2212 + +

Rsync Anonymous server TODO

+Highly experimental - do not use + +This used to require e-smith-rsyncd but you can now get rsyncd +functionality via the smeserver-shared-folders contrib + +To make files available for download by Anonymous Rsync you place them +in the files directory of an ibay and make it globally accesable. +The panel shows which servers have the correct settings and warns of +possible errors in permissions. It has an option to enable or disable +anonymous rsync access. + + +

Rsync Anonymous client

+ +Used to pull files from an anonymous rsync server + +

Exclude / Include syntax

+ +here is a simple example +# cat /opt/rsync55622.ex +/home/e-smith/files/ibays/backup/ +*.bak + +Note. the exlude file is matched first +From man rsync + + --exclude-from=FILE + This option allows you to selectively exclude cer- + tain files from the list of files to be trans- + ferred. This is most useful in combination with a + recursive transfer. + + This option adds all exclude patterns listed in the + file FILE to the exclude list. Blank lines in FILE + and lines starting with ";" or "#" are ignored. If + FILE is - the list will be read from standard + input. + +EXCLUDE PATTERNS + The exclude and include patterns specified to rsync allow + for flexible selection of which files to transfer and + which files to skip. + + rsync builds an ordered list of include/exclude options as + specified on the command line. When a filename is encoun- + tered, rsync checks the name against each exclude/include + pattern in turn. The first matching pattern is acted on. + If it is an exclude pattern, then that file is skipped. If + it is an include pattern then that filename is not + skipped. If no matching include/exclude pattern is found + then the filename is not skipped. + + Note that when used with -r (which is implied by -a), + every subcomponent of every path is visited from top down, + so include/exclude patterns get applied recursively to + each subcomponent. + + The patterns can take several forms. The rules are: + + o if the pattern starts with a / then it is matched + against the start of the filename, otherwise it is + matched against the end of the filename. Thus + "/foo" would match a file called "foo" at the base + of the tree. On the other hand, "foo" would match + any file called "foo" anywhere in the tree because + the algorithm is applied recursively from top down; + it behaves as if each path component gets a turn at + being the end of the file name. + + o if the pattern ends with a / then it will only + match a directory, not a file, link or device. + + o if the pattern contains a wildcard character from + the set *?[ then expression matching is applied + using the shell filename matching rules. Otherwise + a simple string match is used. + + o if the pattern includes a double asterisk "**" then + all wildcards in the pattern will match slashes, + otherwise they will stop at slashes. + + o if the pattern contains a / (not counting a trail- + ing /) then it is matched against the full file- + name, including any leading directory. If the pat- + tern does not contain a / then it is matched only + against the final component of the filename. + Again, remember that the algorithm is applied + recursively so "full filename" can actually be any + portion of a path. + + o if the pattern starts with "+ " (a plus followed by + a space) then it is always considered an include + pattern, even if specified as part of an exclude + option. The "+ " part is discarded before matching. + + o if the pattern starts with "- " (a minus followed + by a space) then it is always considered an exclude + pattern, even if specified as part of an include + option. The "- " part is discarded before matching. + + o if the pattern is a single exclamation mark ! then + the current include/exclude list is reset, removing + all previously defined patterns. + + The +/- rules are most useful in exclude lists, allowing + you to have a single exclude list that contains both + include and exclude options. + + If you end an exclude list with --exclude "*", note that + since the algorithm is applied recursively that unless you + explicitly include parent directories of files you want to + include then the algorithm will stop at the parent direc + tories and never see the files below them. To include all + directories, use --include "*/" before the --exclude "*". + + Here are some exclude/include examples: + + o *.o would exclude all filenames + matching *.o + + o /foo would exclude a file in the base + directory called foo + + o "foo/" would exclude any directory called + foo + + o /foo/*/bar would exclude any file + called bar two levels below a base directory called + foo + + o /foo/**/bar would exclude any file + called bar two or more levels below a base direc- + tory called foo + + o */ + *.c + * would + include all directories and C source files + + o foo/ + foo/bar.c + * would include only foo/bar.c (the foo/ direc- + tory must be explicitly included or it would be + excluded by the "*") + +

Advanced

+ +Not all rsync options can be applied with the panel, if you have +a need to further refine your script you can + +1. +the panel creates shell scripts in /usr/bin/ called dungogrsync-rsync* +eg. +-rwxr-xr-x 1 cathie admin 467 Sep 30 21:34 /usr/bin/dungogrsync-rsync55622 +-rwxr-xr-x 1 stephen admin 593 Oct 1 01:28 /usr/bin/dungogrsync-rsync608624 + +2. +if automated, these are called from cron + +3. +you can take these files, +copy and/or combine them into a new files so they are not overwritten +then add the new file into cron, eg with dungog-cron. + +* combining the files will let one job finish before a new one starts + +* you can add other options, +either generate a dummy script with the panel to check syntax, +or read the manual, man rsync or google + +
'))); + + print $q->endform; + print $q->p ($q->hr, $q->font ({size => "-1"}, "Copyright dungog.net", + $q->a ({href => $q->url (-absolute => 1) . ""}, 'Return to main'), " ...")); + return; +} \ No newline at end of file diff --git a/smeserver-rsync.spec b/smeserver-rsync.spec new file mode 100644 index 0000000..b64f622 --- /dev/null +++ b/smeserver-rsync.spec @@ -0,0 +1,151 @@ +%define name smeserver-rsync +%define version 1.3 +%define release 5 +Summary: SMEserver rpm for rsync +Name: %{name} +Version: %{version} +Release: %{release} +License: GNU GPL version 2 +URL: http://www.contribs.org +Distribution: SME Server +Group: SMEServer/addon +Source: %{name}-%{version}.tar.xz +Packager: Stephen Noble +BuildRoot: /var/tmp/%{name}-%{version} +BuildArchitectures: noarch +BuildRequires: e-smith-devtools +Requires: e-smith-release >= 9 +AutoReqProv: no + + +%description +SMEserver rpm for setting up rsync jobs with a server panel + +%changelog +* Thu Oct 09 2025 cvs2git.sh aka Brian Read 1.3-5.sme +- Roll up patches and move to git repo [SME: 12338] + +* Thu Oct 09 2025 BogusDateBot +- Eliminated rpmbuild "bogus date" warnings due to inconsistent weekday, + by assuming the date is correct and changing the weekday. + Thu Apr 17 2018 --> Thu Apr 12 2018 or Tue Apr 17 2018 or Thu Apr 19 2018 or .... + +* Fri Sep 06 2024 Terry Fage 1.3-4.sme +- add locale 2024-03-21.patch + +* Mon Dec 28 2020 Brian Read 1.3-3.sme +- Initial import to SME10 [SME: ] + +* Tue Apr 17 2018 John Crisp + Thu Apr 17 2018 --> Thu Apr 12 2018 or Tue Apr 17 2018 or Thu Apr 19 2018 or .... +- Set default Options to test +- Fix spelling 'recieve' +- Set default status to Test +- Modify wording [SME:9684] +- [1.3-2] + +* Thu Apr 21 2016 John Crisp +- First import to smecontribs + +* Thu Jun 8 2006 Stephen Noble +- db option to allow overlaps, db dungog setprop rsync overlap allow +- suggestion added to automate with dungog-cron +- panel simplified, instructions moved to help +- [1.2-7] + +* Tue Jun 6 2006 Stephen Noble +- terminate new jobs if rsync is already running +- [1.2-6] + +* Wed Apr 5 2006 Stephen Noble +- add include and exclude directories for 'rsync to self' +- [1.2-5] + +* Mon Mar 27 2006 Stephen Noble +- expand crontab on saves +- remote is now user@server.net not just server.net +- [1.2-4] + +* Tue Mar 14 2006 Stephen Noble +- fixed incorrect crontab permissions +- [1.2-3] + +* Mon Oct 24 2005 Stephen Noble +- more bandwidth options +- help, Advanced options +- [1.2-2] + +* Thu Sep 15 2005 Stephen Noble +- option to run every 2,4,8,12 hours +- [1.2-1] + +* Thu Aug 11 2005 Stephen Noble +- sme 7 version +- [1.0-7] + +* Thu Aug 29 2002 Stephen Noble +- initial release +- [0.1-1] + + +%prep +%setup + + +%build +perl createlinks + + +%install +rm -rf $RPM_BUILD_ROOT +(cd root ; find . -depth -print | cpio -dump $RPM_BUILD_ROOT) +/sbin/e-smith/genfilelist $RPM_BUILD_ROOT > %{name}-%{version}-filelist +echo "%doc " >> %{name}-%{version}-filelist + +%clean +cd .. +rm -rf %{name}-%{version} + +%pre +%preun +%post +#new installs +if [ $1 = 1 ] ; then + /bin/touch /home/e-smith/db/dungog + +# DBS=`find /home/e-smith/db/navigation -type f -name "navigation.*"` +# for db in $DBS ; do +# /sbin/e-smith/db $db set dungog-rsync panel Description "Rsync" DescriptionWeight 4863 Heading "dungog.net" HeadingWeight 4000 2>/dev/null +# done +fi + +/bin/chmod 644 /etc/crontab +/etc/e-smith/events/actions/initialize-default-databases + +echo '' +echo 'Remote server syntax changed for secure transfers from dungog-rsync-1.2-4' +echo 'you now need to enter the user as well as the server' +echo 'this removes the requirement of having the same user on both servers' +echo 'but you may need to update your existing rules' +echo '' + + +%postun +#uninstalls +if [ $1 = 0 ] ; then + /sbin/e-smith/expand-template /etc/crontab + + /bin/rm -rf /usr/bin/dungogrsync-????? + +# DBS=`find /home/e-smith/db/navigation -type f -name "navigation.*"` +# for db in $DBS ; do +# /sbin/e-smith/db $db delete dungog-rsync 2>/dev/null +# done + +fi + +#&upgrades + + +%files -f %{name}-%{version}-filelist +%defattr(-,root,root)