mirror of
https://github.com/serghey-rodin/vesta.git
synced 2025-08-14 18:49:17 -07:00
Merge branch 'master' of github.com:serghey-rodin/vesta
This commit is contained in:
commit
9b7015a1c7
11 changed files with 503 additions and 198 deletions
145
bin/v-add-backup-sftp-host
Executable file
145
bin/v-add-backup-sftp-host
Executable file
|
@ -0,0 +1,145 @@
|
|||
#!/bin/bash
|
||||
# info: add backup sftp host
|
||||
# options: HOST USERNAME [PASSWORD] [PATH] [PORT]
|
||||
#
|
||||
# The function adds sftp host for system backups
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Variable&Function #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Argument defenition
|
||||
sftp_host=$1
|
||||
sftp_user=$2
|
||||
sftp_password=${3-******}
|
||||
sftp_path=${4-backup}
|
||||
sftp_port=${5-22}
|
||||
|
||||
A3='******'
|
||||
|
||||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
source $VESTA/conf/vesta.conf
|
||||
|
||||
# Replace password with ******
|
||||
if [[ $A3 != '******' ]]
|
||||
then
|
||||
EVENT="${EVENT/$sftp_password/******}"
|
||||
fi
|
||||
|
||||
# sftp command function
|
||||
sftpc() {
|
||||
expect -f "-" <<EOF "$@"
|
||||
set count 0
|
||||
spawn /usr/bin/sftp -o StrictHostKeyChecking=no -o Port=$sftp_port $sftp_user@$sftp_host
|
||||
expect {
|
||||
"password:" {
|
||||
send "$sftp_password\r"
|
||||
exp_continue
|
||||
}
|
||||
|
||||
-re "Couldn't|(.*)disconnect|(.*)stalled|(.*)not found" {
|
||||
set count \$argc
|
||||
set output "Disconnected."
|
||||
set rc $E_FTP
|
||||
exp_continue
|
||||
}
|
||||
|
||||
-re ".*denied.*(publickey|password)." {
|
||||
set output "Permission denied, wrong publickey or password."
|
||||
set rc $E_CONNECT
|
||||
}
|
||||
|
||||
"sftp>" {
|
||||
if {\$count < \$argc} {
|
||||
set arg [lindex \$argv \$count]
|
||||
send "\$arg\r"
|
||||
incr count
|
||||
} else {
|
||||
send "exit\r"
|
||||
set output "Disconnected."
|
||||
if {[info exists rc] != 1} {
|
||||
set rc $OK
|
||||
}
|
||||
}
|
||||
exp_continue
|
||||
}
|
||||
|
||||
timeout {
|
||||
set output "Connection timeout."
|
||||
set rc $E_CONNECT
|
||||
}
|
||||
}
|
||||
|
||||
if {[info exists output] == 1} {
|
||||
puts "\$output"
|
||||
}
|
||||
|
||||
exit \$rc
|
||||
EOF
|
||||
}
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Verifications #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
check_expect=$(which expect)
|
||||
if [[ ! -n $check_expect ]]
|
||||
then
|
||||
echo "Error: \"expect\" utility not found"
|
||||
log_event "$E_NOTEXIST" "$EVENT"
|
||||
exit $E_NOTEXIST
|
||||
fi
|
||||
|
||||
check_args '2' "$#" "HOST USERNAME [PASSWORD] [PATH] [PORT]"
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Checking network connection and write permissions
|
||||
sftmpdir="$sftp_path/vst.bK76A9SUkt"
|
||||
sftpc "mkdir $sftp_path" > /dev/null 2>&1
|
||||
sftpc "mkdir $sftmpdir" "rmdir $sftmpdir"
|
||||
rc=$?
|
||||
if [[ "$rc" != 0 ]]
|
||||
then
|
||||
case $rc in
|
||||
$E_CONNECT) echo "Error: can't login to sftp host";;
|
||||
$E_FTP) echo "Error: can't create temp folder on the sftp host";;
|
||||
esac
|
||||
log_event "$rc" "$EVENT"
|
||||
exit "$rc"
|
||||
fi
|
||||
|
||||
# Adding sftp backup config file
|
||||
echo "HOST='$sftp_host'
|
||||
USERNAME='$sftp_user'
|
||||
PASSWORD='$sftp_password'
|
||||
BPATH='$sftp_path'
|
||||
PORT='$sftp_port'
|
||||
TIME='$TIME'
|
||||
DATE='$DATE'" > $VESTA/conf/sftp.backup.conf
|
||||
chmod 660 $VESTA/conf/sftp.backup.conf
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Vesta #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Update vesta.conf
|
||||
if [ -z "$(grep LANGUAGE $VESTA/conf/vesta.conf)" ]; then
|
||||
echo "BACKUP_SYSTEM='ftp'" >> $VESTA/conf/vesta.conf
|
||||
else
|
||||
bckp=$(echo "$BACKUP_SYSTEM,sftp" |\
|
||||
sed "s/,/\n/g"|\
|
||||
sort -r -u |\
|
||||
sed "/^$/d"|\
|
||||
sed ':a;N;$!ba;s/\n/,/g')
|
||||
sed -i "s/BACKUP_SYSTEM=.*/BACKUP_SYSTEM='$bckp'/g" $VESTA/conf/vesta.conf
|
||||
fi
|
||||
|
||||
# Logging
|
||||
echo "$sftp_host/$sftp_path successfully added as backup destination"
|
||||
log_event "$OK" "$EVENT"
|
||||
|
||||
exit
|
|
@ -692,6 +692,158 @@ ftp_backup() {
|
|||
fi
|
||||
}
|
||||
|
||||
# sftp command function
|
||||
sftpc() {
|
||||
expect -f "-" <<EOF "$@"
|
||||
set timeout 60
|
||||
set count 0
|
||||
spawn /usr/bin/sftp -o StrictHostKeyChecking=no -o Port=$PORT $USERNAME@$HOST
|
||||
expect {
|
||||
"password:" {
|
||||
send "$PASSWORD\r"
|
||||
exp_continue
|
||||
}
|
||||
|
||||
-re "Couldn't|(.*)disconnect|(.*)stalled|(.*)not found" {
|
||||
set count \$argc
|
||||
set output "Disconnected."
|
||||
set rc $E_FTP
|
||||
exp_continue
|
||||
}
|
||||
|
||||
-re ".*denied.*(publickey|password)." {
|
||||
set output "Permission denied, wrong publickey or password."
|
||||
set rc $E_CONNECT
|
||||
}
|
||||
|
||||
-re "\[0-9]*%" {
|
||||
exp_continue
|
||||
}
|
||||
|
||||
"sftp>" {
|
||||
if {\$count < \$argc} {
|
||||
set arg [lindex \$argv \$count]
|
||||
send "\$arg\r"
|
||||
incr count
|
||||
} else {
|
||||
send "exit\r"
|
||||
set output "Disconnected."
|
||||
if {[info exists rc] != 1} {
|
||||
set rc $OK
|
||||
}
|
||||
}
|
||||
exp_continue
|
||||
}
|
||||
|
||||
timeout {
|
||||
set output "Connection timeout."
|
||||
set rc $E_CONNECT
|
||||
}
|
||||
}
|
||||
|
||||
if {[info exists output] == 1} {
|
||||
puts "\$output"
|
||||
}
|
||||
|
||||
exit \$rc
|
||||
EOF
|
||||
}
|
||||
|
||||
sftp_backup() {
|
||||
#Checking expect installation
|
||||
check_expect=$(which expect)
|
||||
if [[ ! -n $check_expect ]]
|
||||
then
|
||||
echo "Error: \"expect\" utility not found"
|
||||
log_event "$E_NOTEXIST" "$EVENT"
|
||||
exit $E_NOTEXIST
|
||||
fi
|
||||
|
||||
# Checking config
|
||||
if [ ! -e "$VESTA/conf/sftp.backup.conf" ]; then
|
||||
sftp_conf_error="Can't open $VESTA/conf/sftp.backup.conf"
|
||||
echo "$sftp_conf_error" | $send_mail -s "$subj" $email
|
||||
echo "Error: $VESTA/conf/sftp.backup.conf doesn't exist"
|
||||
sed -i "/ $user /d" $VESTA/data/queue/backup.pipe
|
||||
log_event "$E_NOTEXIST" "$EVENT"
|
||||
exit $E_NOTEXIST
|
||||
fi
|
||||
|
||||
# Parse config
|
||||
source $VESTA/conf/sftp.backup.conf
|
||||
|
||||
# Set current data
|
||||
DATE=$(date +%F)
|
||||
TIME=$(date +%T)
|
||||
|
||||
# Set default port
|
||||
if [ -z "$(grep 'PORT=' $VESTA/conf/sftp.backup.conf)" ]; then
|
||||
PORT='22'
|
||||
fi
|
||||
|
||||
# Checking variables
|
||||
if [ -z "$HOST" ] || [ -z "$USERNAME" ] || [ -z "$PASSWORD" ]; then
|
||||
rm -rf $tmpdir
|
||||
echo "Can't parse sftp backup configuration" |\
|
||||
$send_mail -s "$subj" $email
|
||||
echo "Error: Parsing error"
|
||||
sed -i "/ $user /d" $VESTA/data/queue/backup.pipe
|
||||
log_event "$E_PARSING" "$EVENT"
|
||||
exit $E_PARSING
|
||||
fi
|
||||
|
||||
# Debug info
|
||||
echo -e "$(date "+%F %T") Remote: $HOST/$BPATH/$user.$DATE.tar"
|
||||
|
||||
# Checking network connection and write permissions
|
||||
echo -e "$(date "+%F %T") Checking network connection and write permissions ..."
|
||||
sftmpdir="$BPATH/vst.bK76A9SUkt"
|
||||
sftpc "mkdir $BPATH" > /dev/null 2>&1
|
||||
sftpc "mkdir $sftmpdir" "rmdir $sftmpdir" > /dev/null 2>&1
|
||||
rc=$?
|
||||
if [[ "$rc" != 0 ]]
|
||||
then
|
||||
rm -rf $tmpdir
|
||||
case $rc in
|
||||
$E_CONNECT) echo "Error: can't login to sftp host" | $send_mail -s "$subj" $email;;
|
||||
$E_FTP) echo "Error: can't create temp folder on the sftp host" | $send_mail -s "$subj" $email;;
|
||||
esac
|
||||
sed -i "/ $user /d" $VESTA/data/queue/backup.pipe
|
||||
log_event "$rc" "$EVENT"
|
||||
exit "$rc"
|
||||
fi
|
||||
echo -e "$(date "+%F %T") Connection established"
|
||||
|
||||
# Checking retention
|
||||
echo -e "$(date "+%F %T") Checking retention ..."
|
||||
backup_list=$(sftpc "cd $BPATH" "ls -l" |awk '{print $9}' |grep "^$user\.")
|
||||
backups_count=$(echo "$backup_list" | wc -l)
|
||||
if [ "$backups_count" -ge "$BACKUPS" ]; then
|
||||
backups_rm_number=$((backups_count - BACKUPS + 1))
|
||||
for backup in $(echo "$backup_list" | head -n $backups_rm_number); do
|
||||
backup_date=$(echo $backup | sed -e "s/$user.//" -e "s/.tar.*$//")
|
||||
if [ -z $deprecated ]; then deprecated="$backup_date"; else deprecated="$deprecated $backup_date"; fi
|
||||
echo -e "$(date "+%F %T") Roated sftp backup: $backup_date"
|
||||
msg="$msg\n$(date "+%F %T") Roated sftp backup: $backup_date"
|
||||
sftpc "cd $BPATH" "rm $backup" > /dev/null 2>&1
|
||||
done
|
||||
fi
|
||||
|
||||
# Uploading backup archive
|
||||
echo -e "$(date "+%F %T") Uploading $user.$DATE.tar ..."
|
||||
if [ "$localbackup" = 'yes' ]; then
|
||||
cd $BACKUP
|
||||
sftpc "cd $BPATH" "put $user.$DATE.tar" > /dev/null 2>&1
|
||||
else
|
||||
cd $tmpdir
|
||||
tar -cf $BACKUP/$user.$DATE.tar .
|
||||
cd $BACKUP/
|
||||
sftpc "cd $BPATH" "put $user.$DATE.tar" > /dev/null 2>&1
|
||||
rm -f $user.$DATE.tar
|
||||
fi
|
||||
echo -e "$(date "+%F %T") Upload complete"
|
||||
}
|
||||
|
||||
echo "-- SUMMARY --"
|
||||
msg="$msg\n-- SUMMARY --"
|
||||
|
||||
|
@ -700,6 +852,7 @@ for backup_type in $(echo -e "${BACKUP_SYSTEM//,/\\n}"); do
|
|||
case $backup_type in
|
||||
local) local_backup ;;
|
||||
ftp) ftp_backup ;;
|
||||
sftp) sftp_backup ;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
|
46
bin/v-delete-backup-sftp-host
Normal file
46
bin/v-delete-backup-sftp-host
Normal file
|
@ -0,0 +1,46 @@
|
|||
#!/bin/bash
|
||||
# info: delete backup sftp server
|
||||
# options: NONE
|
||||
#
|
||||
# The function deletes sftp backup host
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Variable&Function #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
source $VESTA/conf/vesta.conf
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Verifications #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Delete configuration file
|
||||
rm -f $VESTA/conf/sftp.backup.conf
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Vesta #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Update vesta.conf
|
||||
bckp=$(echo "$BACKUP_SYSTEM" |\
|
||||
sed "s/,/\n/g"|\
|
||||
sed "s/sftp//" |\
|
||||
sed "/^$/d"|\
|
||||
sed ':a;N;$!ba;s/\n/,/g')
|
||||
sed -i "s/BACKUP_SYSTEM=.*/BACKUP_SYSTEM='$bckp'/g" $VESTA/conf/vesta.conf
|
||||
|
||||
# Logging
|
||||
echo "sftp host successfulle removed from configuration"
|
||||
log_event "$OK" "$EVENT"
|
||||
|
||||
exit
|
|
@ -12,6 +12,7 @@
|
|||
# Defining absolute path for iptables and modprobe
|
||||
iptables="/sbin/iptables"
|
||||
modprobe="/sbin/modprobe"
|
||||
sysctl="/sbin/sysctl"
|
||||
|
||||
# Includes
|
||||
source /etc/profile.d/vesta.sh
|
||||
|
@ -38,11 +39,16 @@ if [ ! -e "$rules" ]; then
|
|||
exit
|
||||
fi
|
||||
|
||||
$sysctl net.netfilter.nf_conntrack_max >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
conntrack='no'
|
||||
fi
|
||||
|
||||
# Checking conntrack module avaiabilty
|
||||
$modprobe nf_conntrack >/dev/null 2>&1
|
||||
$modprobe nf_conntrack_ftp >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
stateful='no'
|
||||
conntrack_ftp='no'
|
||||
fi
|
||||
|
||||
# Creating temporary file
|
||||
|
@ -75,7 +81,7 @@ for line in $(sort -r -n -k 2 -t \' $rules); do
|
|||
|
||||
# Checking FTP for contrack module
|
||||
if [ "$TYPE" = "FTP" ] || [ "$PORT" = '21' ]; then
|
||||
if [ "$stateful" != 'no' ]; then
|
||||
if [ "$conntrack_ftp" != 'no' ]; then
|
||||
state="-m conntrack --ctstate NEW"
|
||||
else
|
||||
port="-m multiport --dports 20,21,12000:12100"
|
||||
|
@ -101,7 +107,7 @@ for p_rule in $(cat $ports); do
|
|||
done
|
||||
|
||||
# Enabling stateful support
|
||||
if [ "$stateful" != 'no' ]; then
|
||||
if [ "$conntrack" != 'no' ]; then
|
||||
str="$iptables -A INPUT -p tcp -m state"
|
||||
str="$str --state ESTABLISHED,RELATED -j ACCEPT"
|
||||
echo "$str" >> $tmp
|
||||
|
|
|
@ -2,3 +2,27 @@ protocols = imap pop3
|
|||
listen = *, ::
|
||||
base_dir = /var/run/dovecot/
|
||||
!include conf.d/*.conf
|
||||
|
||||
namespace {
|
||||
type = private
|
||||
separator = /
|
||||
prefix =
|
||||
inbox = yes
|
||||
|
||||
mailbox Sent {
|
||||
auto = subscribe
|
||||
special_use = \Sent
|
||||
}
|
||||
mailbox Drafts {
|
||||
auto = subscribe
|
||||
special_use = \Drafts
|
||||
}
|
||||
mailbox Trash {
|
||||
auto = subscribe
|
||||
special_use = \Trash
|
||||
}
|
||||
mailbox Junk {
|
||||
auto = subscribe
|
||||
special_use = \Junk
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ ServerName "FTP"
|
|||
ServerIdent on "FTP Server ready."
|
||||
ServerAdmin root@localhost
|
||||
DefaultServer on
|
||||
VRootEngine on
|
||||
VRootEngine off
|
||||
DefaultRoot ~ !adm
|
||||
AuthPAMConfig proftpd
|
||||
AuthOrder mod_auth_pam.c* mod_auth_unix.c
|
||||
|
|
|
@ -3,51 +3,18 @@
|
|||
##
|
||||
|
||||
protocol imap {
|
||||
# Maximum IMAP command line length. Some clients generate very long command
|
||||
# lines with huge mailboxes, so you may need to raise this if you get
|
||||
# "Too long argument" or "IMAP command line too large" errors often.
|
||||
#imap_max_line_length = 64k
|
||||
|
||||
# Maximum number of IMAP connections allowed for a user from each IP address.
|
||||
# NOTE: The username is compared case-sensitively.
|
||||
#mail_max_userip_connections = 10
|
||||
|
||||
# Space separated list of plugins to load (default is global mail_plugins).
|
||||
#mail_plugins = $mail_plugins
|
||||
|
||||
# IMAP logout format string:
|
||||
# %i - total number of bytes read from client
|
||||
# %o - total number of bytes sent to client
|
||||
#imap_logout_format = bytes=%i/%o
|
||||
|
||||
# Override the IMAP CAPABILITY response. If the value begins with '+',
|
||||
# add the given capabilities on top of the defaults (e.g. +XFOO XBAR).
|
||||
#imap_capability =
|
||||
|
||||
# How long to wait between "OK Still here" notifications when client is
|
||||
# IDLEing.
|
||||
#imap_idle_notify_interval = 2 mins
|
||||
|
||||
# ID field names and values to send to clients. Using * as the value makes
|
||||
# Dovecot use the default value. The following fields have default values
|
||||
# currently: name, version, os, os-version, support-url, support-email.
|
||||
#imap_id_send =
|
||||
|
||||
# ID fields sent by client to log. * means everything.
|
||||
#imap_id_log =
|
||||
|
||||
# Workarounds for various client bugs:
|
||||
# delay-newmail:
|
||||
# Send EXISTS/RECENT new mail notifications only when replying to NOOP
|
||||
# and CHECK commands. Some clients ignore them otherwise, for example OSX
|
||||
# Mail (<v2.1). Outlook Express breaks more badly though, without this it
|
||||
# may show user "Message no longer in server" errors. Note that OE6 still
|
||||
# breaks even with this workaround if synchronization is set to
|
||||
# "Headers Only".
|
||||
# tb-extra-mailbox-sep:
|
||||
# With mbox storage a mailbox can contain either mails or submailboxes,
|
||||
# but not both. Thunderbird separates these two by forcing server to
|
||||
# accept '/' suffix in mailbox names in subscriptions list.
|
||||
# The list is space-separated.
|
||||
#imap_client_workarounds =
|
||||
mail_plugins = $mail_plugins autocreate
|
||||
}
|
||||
|
||||
plugin {
|
||||
autocreate = Trash
|
||||
autocreate2 = Spam
|
||||
autocreate3 = Sent
|
||||
autocreate4 = Drafts
|
||||
#autocreate5 = Custom
|
||||
autosubscribe = Trash
|
||||
autosubscribe2 = Spam
|
||||
autosubscribe3 = Sent
|
||||
autosubscribe4 = Drafts
|
||||
#autosubscribe5 = Custom
|
||||
}
|
||||
|
|
|
@ -3,56 +3,18 @@
|
|||
##
|
||||
|
||||
protocol imap {
|
||||
# Maximum IMAP command line length. Some clients generate very long command
|
||||
# lines with huge mailboxes, so you may need to raise this if you get
|
||||
# "Too long argument" or "IMAP command line too large" errors often.
|
||||
#imap_max_line_length = 64k
|
||||
|
||||
# Maximum number of IMAP connections allowed for a user from each IP address.
|
||||
# NOTE: The username is compared case-sensitively.
|
||||
#mail_max_userip_connections = 10
|
||||
|
||||
# Space separated list of plugins to load (default is global mail_plugins).
|
||||
#mail_plugins = $mail_plugins
|
||||
|
||||
# IMAP logout format string:
|
||||
# %i - total number of bytes read from client
|
||||
# %o - total number of bytes sent to client
|
||||
#imap_logout_format = bytes=%i/%o
|
||||
|
||||
# Override the IMAP CAPABILITY response. If the value begins with '+',
|
||||
# add the given capabilities on top of the defaults (e.g. +XFOO XBAR).
|
||||
#imap_capability =
|
||||
|
||||
# How long to wait between "OK Still here" notifications when client is
|
||||
# IDLEing.
|
||||
#imap_idle_notify_interval = 2 mins
|
||||
|
||||
# ID field names and values to send to clients. Using * as the value makes
|
||||
# Dovecot use the default value. The following fields have default values
|
||||
# currently: name, version, os, os-version, support-url, support-email.
|
||||
#imap_id_send =
|
||||
|
||||
# ID fields sent by client to log. * means everything.
|
||||
#imap_id_log =
|
||||
|
||||
# Workarounds for various client bugs:
|
||||
# delay-newmail:
|
||||
# Send EXISTS/RECENT new mail notifications only when replying to NOOP
|
||||
# and CHECK commands. Some clients ignore them otherwise, for example OSX
|
||||
# Mail (<v2.1). Outlook Express breaks more badly though, without this it
|
||||
# may show user "Message no longer in server" errors. Note that OE6 still
|
||||
# breaks even with this workaround if synchronization is set to
|
||||
# "Headers Only".
|
||||
# tb-extra-mailbox-sep:
|
||||
# Thunderbird gets somehow confused with LAYOUT=fs (mbox and dbox) and
|
||||
# adds extra '/' suffixes to mailbox names. This option causes Dovecot to
|
||||
# ignore the extra '/' instead of treating it as invalid mailbox name.
|
||||
# tb-lsub-flags:
|
||||
# Show \Noselect flags for LSUB replies with LAYOUT=fs (e.g. mbox).
|
||||
# This makes Thunderbird realize they aren't selectable and show them
|
||||
# greyed out, instead of only later giving "not selectable" popup error.
|
||||
#
|
||||
# The list is space-separated.
|
||||
#imap_client_workarounds =
|
||||
mail_plugins = $mail_plugins autocreate
|
||||
}
|
||||
|
||||
plugin {
|
||||
autocreate = Trash
|
||||
autocreate2 = Spam
|
||||
autocreate3 = Sent
|
||||
autocreate4 = Drafts
|
||||
#autocreate5 = Custom
|
||||
autosubscribe = Trash
|
||||
autosubscribe2 = Spam
|
||||
autosubscribe3 = Sent
|
||||
autosubscribe4 = Drafts
|
||||
#autosubscribe5 = Custom
|
||||
}
|
||||
|
|
|
@ -533,6 +533,7 @@ wget $CHOST/$VERSION/sudoers.conf -O /etc/sudoers
|
|||
wget $CHOST/$VERSION/sudoers.admin.conf -O /etc/sudoers.d/admin
|
||||
chmod 440 /etc/sudoers
|
||||
chmod 440 /etc/sudoers.d/admin
|
||||
echo 'Defaults:admin !syslog' >>/etc/sudoers.d/admin
|
||||
|
||||
# NTP Synchronization
|
||||
echo '#!/bin/sh' > /etc/cron.daily/ntpdate
|
||||
|
|
|
@ -534,6 +534,7 @@ wget $CHOST/$VERSION/sudoers.vestacp.conf -O /etc/sudoers.d/vestacp
|
|||
wget $CHOST/$VERSION/sudoers.admin.conf -O /etc/sudoers.d/admin
|
||||
chmod 440 /etc/sudoers.d/vestacp
|
||||
chmod 440 /etc/sudoers.d/admin
|
||||
echo 'Defaults:admin !syslog' >>/etc/sudoers.d/admin
|
||||
|
||||
# NTP Synchronization
|
||||
echo '#!/bin/sh' > /etc/cron.daily/ntpdate
|
||||
|
|
|
@ -26,7 +26,7 @@ $LANG['ua'] = array(
|
|||
'CRON' => 'CRON',
|
||||
'BACKUP' => 'BACKUP',
|
||||
|
||||
'Add User' => 'Додати акаунт',
|
||||
'Add User' => 'Додати користувача',
|
||||
'Add Domain' => 'Додати домен',
|
||||
'Add Web Domain' => 'Додати WEB домен',
|
||||
'Add DNS Domain' => 'Додати DNS домен',
|
||||
|
@ -45,10 +45,10 @@ $LANG['ua'] = array(
|
|||
'Add one more FTP Account' => 'Додати ще один FTP акаунт',
|
||||
'Search' => 'Пошук',
|
||||
'Overall Statistics' => 'Загальна статистика',
|
||||
'Daily' => 'Щоденні',
|
||||
'Weekly' => 'Щотижневі',
|
||||
'Monthly' => 'Щомісячні',
|
||||
'Yearly' => 'Щорічні',
|
||||
'Daily' => 'Щоденний',
|
||||
'Weekly' => 'Щотижневий',
|
||||
'Monthly' => 'Щомісячний',
|
||||
'Yearly' => 'Щорічний',
|
||||
'Add' => 'Додати',
|
||||
'Back' => 'Назад',
|
||||
'Save' => 'Зберегти',
|
||||
|
@ -56,21 +56,21 @@ $LANG['ua'] = array(
|
|||
|
||||
'toggle all' => 'виділити все',
|
||||
'apply to selected' => 'застосувати до вибраних',
|
||||
'rebuild' => 'перестворити',
|
||||
'rebuild web' => 'перестворити WEB',
|
||||
'rebuild dns' => 'перестворити DNS',
|
||||
'rebuild mail' => 'перестворити MAIL',
|
||||
'rebuild db' => 'перестворити DB',
|
||||
'rebuild cron' => 'перестворити CRON',
|
||||
'rebuild' => 'перебудувати',
|
||||
'rebuild web' => 'перебудувати WEB',
|
||||
'rebuild dns' => 'перебудувати DNS',
|
||||
'rebuild mail' => 'перебудувати MAIL',
|
||||
'rebuild db' => 'перебудувати DB',
|
||||
'rebuild cron' => 'перебудувати CRON',
|
||||
'update counters' => 'оновити лічильники',
|
||||
'suspend' => 'заблокувати',
|
||||
'unsuspend' => 'розблокувати',
|
||||
'delete' => 'видалити',
|
||||
'show per user' => 'вибрати користувача',
|
||||
'show per user' => 'по користувачам',
|
||||
'login as' => 'увійти як',
|
||||
'logout' => 'вийти',
|
||||
'edit' => 'редагувати',
|
||||
'open webstats' => 'відкрити звіт веб-аналітики',
|
||||
'open webstats' => 'відкрити веб-статистику',
|
||||
'view logs' => 'переглянути логи',
|
||||
'list records' => 'показати записи: %s',
|
||||
'add record' => 'додати запис',
|
||||
|
@ -88,14 +88,14 @@ $LANG['ua'] = array(
|
|||
'update' => 'оновити',
|
||||
'generate' => 'згенерувати',
|
||||
'Generate CSR' => 'Згенерувати CSR запит',
|
||||
'reread IP' => 'оновити IP',
|
||||
'reread IP' => 'перечитати IP',
|
||||
'enable autoupdate' => 'увімкнути автооновлення',
|
||||
'disable autoupdate' => 'вимкнути автооновлення',
|
||||
'turn on notifications' => 'увімкнути сповіщення',
|
||||
'turn off notifications' => 'вимкнути сповіщення',
|
||||
|
||||
'Adding User' => 'Додавання акаунту',
|
||||
'Editing User' => 'Редагування акаунту',
|
||||
'Adding User' => 'Додавання користувача',
|
||||
'Editing User' => 'Редагування користувача',
|
||||
'Adding Domain' => 'Додавання домену',
|
||||
'Editing Domain' => 'Редагування домену',
|
||||
'Adding DNS Domain' => 'Додавання DNS домену',
|
||||
|
@ -114,7 +114,7 @@ $LANG['ua'] = array(
|
|||
'Editing Package' => 'Редагування пакету',
|
||||
'Adding IP address' => 'Додавання IP адреси',
|
||||
'Editing IP Address' => 'Редагування IP адреси',
|
||||
'Editing Backup Exclusions' => 'Налаштування вийнятків',
|
||||
'Editing Backup Exclusions' => 'Налаштування вийнятків архіву',
|
||||
'Generating CSR' => 'Генерування CSR запиту',
|
||||
'Listing' => 'Список',
|
||||
'Search Results' => 'Результати пошуку',
|
||||
|
@ -150,7 +150,7 @@ $LANG['ua'] = array(
|
|||
'Web' => 'Веб',
|
||||
'Mail' => 'Пошта',
|
||||
'Databases' => 'Бази даних',
|
||||
'User Directories' => 'Теки Користувача',
|
||||
'User Directories' => 'Теки користувача',
|
||||
'Template' => 'Шаблон',
|
||||
'Web Template' => 'Шаблон Apache',
|
||||
'Proxy Template' => 'Шаблон Nginx',
|
||||
|
@ -161,7 +161,7 @@ $LANG['ua'] = array(
|
|||
'per domain' => 'на домен',
|
||||
'DNS Domains' => 'DNS домени',
|
||||
'DNS Domains' => 'DNS домени',
|
||||
'DNS records' => 'DNS запису',
|
||||
'DNS records' => 'DNS записи',
|
||||
'Name Servers' => 'Сервери імен',
|
||||
'Mail Domains' => 'Поштові домени',
|
||||
'Mail Accounts' => 'Поштові акаунти',
|
||||
|
@ -173,19 +173,19 @@ $LANG['ua'] = array(
|
|||
'backup exclusions' => 'вийнятки архіву',
|
||||
'template' => 'шаблон',
|
||||
'SSL Support' => 'Підтримка SSL',
|
||||
'SSL Home Directory' => 'Тека SSL',
|
||||
'SSL Home Directory' => 'Домашня тека SSL',
|
||||
'Proxy Support' => 'Підтримка Nginx',
|
||||
'Proxy Extensions' => 'Опрацювання Nginx',
|
||||
'Web Statistics' => 'Статистика сайту',
|
||||
'Additional FTP Account' => 'Додатковий FTP',
|
||||
'Proxy Extensions' => 'Розширення Nginx',
|
||||
'Web Statistics' => 'Веб статистика',
|
||||
'Additional FTP Account' => 'Додатковий FTP акаунт',
|
||||
'SOA' => 'SOA',
|
||||
'TTL' => 'TTL',
|
||||
'Expire' => 'Спливає',
|
||||
'Records' => 'DNS записи',
|
||||
'Records' => 'Записи',
|
||||
'Catchall email' => 'Пастка пошти',
|
||||
'AntiVirus Support' => 'Антивірус',
|
||||
'AntiSpam Support' => 'Антиспам',
|
||||
'DKIM Support' => 'DKIM',
|
||||
'AntiVirus Support' => 'Підтримка антивірусу',
|
||||
'AntiSpam Support' => 'Підтримка антиспаму',
|
||||
'DKIM Support' => 'Підтримка DKIM',
|
||||
'Accounts' => 'Акаунти',
|
||||
'Quota' => 'Квота',
|
||||
'Autoreply' => 'Автовідповідач',
|
||||
|
@ -201,8 +201,8 @@ $LANG['ua'] = array(
|
|||
'Month' => 'Місяць',
|
||||
'Day of week' => 'День тижня',
|
||||
'local' => 'локальний',
|
||||
'Run Time' => 'Виконаний за',
|
||||
'Backup Size' => 'Розмір',
|
||||
'Run Time' => 'Виконано за',
|
||||
'Backup Size' => 'Розмір архіву',
|
||||
'SYS' => 'Системний',
|
||||
'Domains' => 'Домени',
|
||||
'Status' => 'Статус',
|
||||
|
@ -211,14 +211,14 @@ $LANG['ua'] = array(
|
|||
'Owner' => 'Власник',
|
||||
'Users' => 'Користувачі',
|
||||
'Load Average' => 'Загальне Навантаження',
|
||||
'Memory Usage' => 'Використання Пам`яті',
|
||||
'HTTPD Usage' => 'Web сервер',
|
||||
'NGINX Usage' => 'Nginx',
|
||||
'MySQL Usage on localhost' => 'Сервер бази даних MySQL',
|
||||
'PostgreSQL Usage on localhost' => 'Сервер бази даних PostgreSQL',
|
||||
'Bandwidth Usage eth0' => 'Використання мережі: eth0',
|
||||
'FTP Usage' => 'FTP сервер',
|
||||
'SSH Usage' => 'SSH сервер',
|
||||
'Memory Usage' => 'Використання Пам\'яті',
|
||||
'HTTPD Usage' => 'Використання HTTPd',
|
||||
'NGINX Usage' => 'Використання Nginx',
|
||||
'MySQL Usage on localhost' => 'Локальний сервер бази даних MySQL',
|
||||
'PostgreSQL Usage on localhost' => 'Локальний сервер бази даних PostgreSQL',
|
||||
'Bandwidth Usage eth0' => 'Використання мережі eth0',
|
||||
'FTP Usage' => 'Використання FTP',
|
||||
'SSH Usage' => 'Використання SSH',
|
||||
'reverse proxy' => 'зворотній проксі',
|
||||
'web server' => 'Web сервер',
|
||||
'dns server' => 'DNS сервер ',
|
||||
|
@ -230,7 +230,7 @@ $LANG['ua'] = array(
|
|||
'ftp server' => 'FTP сервер',
|
||||
'job scheduler' => 'планувальник завдань',
|
||||
'CPU' => 'Процесор',
|
||||
'Memory' => 'Пам`ять',
|
||||
'Memory' => 'Пам\'ять',
|
||||
'Uptime' => 'Запущений',
|
||||
'core package' => 'головний пакет',
|
||||
'php interpreter' => 'PHP інтерпретатор',
|
||||
|
@ -238,14 +238,14 @@ $LANG['ua'] = array(
|
|||
'Version' => 'Версія',
|
||||
'Release' => 'Реліз',
|
||||
'Architecture' => 'Архітектура',
|
||||
'Object' => 'Об`єкт',
|
||||
'Object' => 'Об\'єкт',
|
||||
'Owner' => 'Власник',
|
||||
'Username' => 'Акаунт',
|
||||
'Password' => 'Пароль',
|
||||
'Email' => 'Поштова скринька',
|
||||
'Package' => 'Пакет',
|
||||
'Language' => 'Мова',
|
||||
'First Name' => 'Ім`я',
|
||||
'First Name' => 'Ім\'я',
|
||||
'Last Name' => 'Прізвище',
|
||||
'Send login credentials to email address' => 'Відправити дані акаунту за адресою',
|
||||
'Default Template' => 'Шаблон за замовчуванням',
|
||||
|
@ -257,12 +257,12 @@ $LANG['ua'] = array(
|
|||
'Aliases' => 'Аліаси',
|
||||
'SSL Certificate' => 'SSL сертификат',
|
||||
'SSL Key' => 'Ключ SSL сертифікату',
|
||||
'SSL Certificate Authority / Intermediate' => 'Центр сертифікації SSL / Intermediate',
|
||||
'SSL Certificate Authority / Intermediate' => 'Центр сертифікації SSL / Проміжний',
|
||||
'SSL CSR' => 'SSL CSR запит',
|
||||
'optional' => 'опційно',
|
||||
'internal' => 'внутрішній',
|
||||
'Statistics Authorization' => 'Обмежений доступ до статистики',
|
||||
'Statistics Auth' => 'Авторизація Статистики',
|
||||
'Statistics Auth' => 'Авторизація перегляду статистики',
|
||||
'Account' => 'Акаунт',
|
||||
'Prefix will be automaticaly added to username' => 'Префікс %s буде автоматично додано до назви акаунту',
|
||||
'Send FTP credentials to email' => 'Відправити дані FTP акаунту за адресою',
|
||||
|
@ -272,7 +272,7 @@ $LANG['ua'] = array(
|
|||
'Record' => 'Запис / Піддомен',
|
||||
'IP or Value' => 'IP адреса або Значення',
|
||||
'Priority' => 'Пріоритет',
|
||||
'Record Number' => 'Порядковий номер',
|
||||
'Record Number' => 'Порядковий номер запису',
|
||||
'in megabytes' => 'в мегабайтах',
|
||||
'Message' => 'Повідомлення',
|
||||
'use local-part' => 'використовуйте тільки імена акаунтів',
|
||||
|
@ -286,12 +286,12 @@ $LANG['ua'] = array(
|
|||
'Netmask' => 'Маска підмережі',
|
||||
'Interface' => 'Інтерфейс',
|
||||
'Shared' => 'Загальний',
|
||||
'Assigned user' => 'Назначити користувачу',
|
||||
'Assigned domain' => 'Домен',
|
||||
'Assigned user' => 'Призначений користувач',
|
||||
'Assigned domain' => 'Призначений домен',
|
||||
'NAT IP association' => 'Асоційований NAT IP',
|
||||
'shell' => 'SSH доступ',
|
||||
'shell' => 'оболонка',
|
||||
'web domains' => 'Web домени',
|
||||
'web aliases' => 'аліаси хостів',
|
||||
'web aliases' => 'Web аліаси',
|
||||
'dns records' => 'DNS записи',
|
||||
'mail domains' => 'поштові домени',
|
||||
'mail accounts' => 'поштові акаунти',
|
||||
|
@ -299,7 +299,7 @@ $LANG['ua'] = array(
|
|||
'databases' => 'бази даних',
|
||||
'cron jobs' => 'cron завдання',
|
||||
'backups' => 'архіви',
|
||||
'quota' => 'квота диску',
|
||||
'quota' => 'квота',
|
||||
'day of week' => 'день тижня',
|
||||
'cmd' => 'командний рядок',
|
||||
'users' => 'користувачі',
|
||||
|
@ -317,26 +317,26 @@ $LANG['ua'] = array(
|
|||
'IP address' => 'IP адреса',
|
||||
'netmask' => 'маска підмережі',
|
||||
'interface' => 'інтерфейс',
|
||||
'assigned user' => 'обраний користувач',
|
||||
'assigned user' => 'призначений користувач',
|
||||
'ns1' => 'сервер імен #1',
|
||||
'ns2' => 'сервер імен #2',
|
||||
'user' => 'користувач',
|
||||
'email' => 'пошта',
|
||||
'first name' => 'ім`я',
|
||||
'last name' => 'прізвище',
|
||||
'first name' => 'Ім\'я',
|
||||
'last name' => 'Прізвище',
|
||||
'account' => 'акаунт',
|
||||
'ssl certificate' => 'SSL сертификат',
|
||||
'ssl key' => 'ключ SSL сертифікату',
|
||||
'stats user password' => 'пароль доступу до статистики',
|
||||
'stats username' => 'ім`я користувача статистики',
|
||||
'stats password' => 'пароль користувача статистики',
|
||||
'stats user password' => 'пароль користувача статистики',
|
||||
'stats username' => 'ім\'я користувача статистики',
|
||||
'stats password' => 'пароль статистики',
|
||||
'ftp user password' => 'пароль доступу до FTP',
|
||||
'ftp user' => 'користувач FTP',
|
||||
'Last 70 lines of %s.%s.log' => 'Останні 70 рядків файлу %s.%s.log',
|
||||
'Download AccessLog' => 'Завантажити AccessLog',
|
||||
'Download ErrorLog' => 'Завантажити ErrorLog',
|
||||
'Country' => 'Країна',
|
||||
'2 letter code' => 'двобуквений код',
|
||||
'2 letter code' => 'Двобуквений код',
|
||||
'State / Province' => 'Область',
|
||||
'City / Locality' => 'Місто / Населений пункт',
|
||||
'Organization' => 'Організація',
|
||||
|
@ -348,52 +348,52 @@ $LANG['ua'] = array(
|
|||
'ranges are acceptable' => 'дозволені діапазони',
|
||||
'CIDR format is supported' => 'формат CIDR підтримується',
|
||||
|
||||
'1 account' => ' користувачів на сторінці: 1',
|
||||
'%s accounts' => 'користувачів на сторінці: %s',
|
||||
'1 domain' => 'доменів на сторінці: 1',
|
||||
'%s domains' => 'доменів на сторінці: %s',
|
||||
'1 record' => 'записів на сторінці: 1',
|
||||
'%s records' => 'записів на сторінці: %s',
|
||||
'1 mail account' => 'акаунтів на сторінці: 1',
|
||||
'%s mail accounts' => 'акаунтів на сторінці: %s',
|
||||
'1 database' => 'баз даних на сторінці: 1',
|
||||
'%s databases' => 'баз даних на сторінці: %s',
|
||||
'1 cron job' => 'завдань на сторінці: 1',
|
||||
'%s cron jobs' => 'завдань на сторінці: %s',
|
||||
'1 archive' => 'архівів на сторінці: 1',
|
||||
'%s archives' => 'архівів на сторінці: %s',
|
||||
'1 package' => 'пакетів на сторінці: 1',
|
||||
'%s packages' => 'пакетів на сторінці: %s',
|
||||
'1 IP address' => 'IP адрес на сторінці: 1',
|
||||
'%s IP addresses' => 'IP адрес на сторінці: %s',
|
||||
'1 month' => 'місяців на сторінці: 1',
|
||||
'%s months' => 'місяців на сторінці: %s',
|
||||
'1 log record' => 'записів на сторінці: 1',
|
||||
'%s log records' => 'записів на сторінці %s',
|
||||
'1 object' => 'об`єктів на сторінці: 1',
|
||||
'%s objects' => 'об`єктів на сторінці: %s',
|
||||
'1 account' => ' 1 акаунт',
|
||||
'%s accounts' => '%s акаунтів',
|
||||
'1 domain' => '1 домен',
|
||||
'%s domains' => '%s доменів',
|
||||
'1 record' => '1 запис',
|
||||
'%s records' => '%s записів',
|
||||
'1 mail account' => '1 поштовий акаунт',
|
||||
'%s mail accounts' => '%s поштових акаунтів',
|
||||
'1 database' => '1 база даних',
|
||||
'%s databases' => '%s баз даних',
|
||||
'1 cron job' => '1 завдання',
|
||||
'%s cron jobs' => '%s завдань',
|
||||
'1 archive' => '1 архів',
|
||||
'%s archives' => '%s архівів',
|
||||
'1 package' => '1 пакет',
|
||||
'%s packages' => '%s пакет',
|
||||
'1 IP address' => '1 IP адреса',
|
||||
'%s IP addresses' => '%s IP адрес',
|
||||
'1 month' => '1 місяць',
|
||||
'%s months' => '%s місяців',
|
||||
'1 log record' => '1 журнальний запис',
|
||||
'%s log records' => '%s журнальних записів',
|
||||
'1 object' => '1 об\'єкт',
|
||||
'%s objects' => '%s об\'єктів',
|
||||
'no exclusions' => 'немає виключень',
|
||||
'1 rule' => 'правил на сторінці: 1',
|
||||
'%s rules' => 'правил на сторінці: %s',
|
||||
'1 rule' => '1 правило',
|
||||
'%s rules' => '%s правил',
|
||||
'There are no currently banned IP' => 'Немає заблокованих IP',
|
||||
|
||||
'USER_CREATED_OK' => 'Аккаунт <a href="/edit/user/?user=%s"><b>%s</b></a> успішно створено',
|
||||
'WEB_DOMAIN_CREATED_OK' => 'Домен <a href="/edit/web/?domain=%s"><b>%s</b></a> успішно створено.',
|
||||
'DNS_DOMAIN_CREATED_OK' => 'Домен <a href="/list/dns/?domain=%s"><b>%s</b></a> успішно створено.',
|
||||
'DNS_RECORD_CREATED_OK' => 'Запис <b>%s.%s</b> успішно створено.',
|
||||
'MAIL_DOMAIN_CREATED_OK' => 'Домен <a href="/list/mail/?domain=%s"><b>%s</b></a> успішно створено.',
|
||||
'MAIL_ACCOUNT_CREATED_OK' => 'Аккаунт <a href="/edit/mail/?account=%s&domain=%s"><b>%s@%s</b></a> успішно створено',
|
||||
'WEB_DOMAIN_CREATED_OK' => 'WEB домен <a href="/edit/web/?domain=%s"><b>%s</b></a> успішно створено.',
|
||||
'DNS_DOMAIN_CREATED_OK' => 'DNS домен <a href="/list/dns/?domain=%s"><b>%s</b></a> успішно створено.',
|
||||
'DNS_RECORD_CREATED_OK' => 'DNS запис <b>%s.%s</b> успішно створено.',
|
||||
'MAIL_DOMAIN_CREATED_OK' => 'Поштовий домен <a href="/list/mail/?domain=%s"><b>%s</b></a> успішно створено.',
|
||||
'MAIL_ACCOUNT_CREATED_OK' => 'Поштову скриньку <a href="/edit/mail/?account=%s&domain=%s"><b>%s@%s</b></a> успішно створено',
|
||||
'DATABASE_CREATED_OK' => 'Базу даних <a href="/edit/db/?database=%s"><b>%s</b></a> успішно створено',
|
||||
'CRON_CREATED_OK' => 'Завдання успішно додано',
|
||||
'CRON_CREATED_OK' => 'Cron завдання успішно додано',
|
||||
'IP_CREATED_OK' => '"IP адресу <a href="/edit/ip/?ip=%s"><b>%s</b></a> успішно створено.',
|
||||
'PACKAGE_CREATED_OK' => 'Пакет <a href="/edit/package/?package=%s"><b>%s</b></a> успішно створено.',
|
||||
'SSL_GENERATED_OK' => 'SSL cертификат успішно створено.',
|
||||
'SSL_GENERATED_OK' => 'SSL cертификат успішно згенеровано.',
|
||||
'RULE_CREATED_OK' => 'Правило успішно створено.',
|
||||
'Autoupdate has been successfully enabled' => 'Aвтооновлення було успішно увімкнено',
|
||||
'Autoupdate has been successfully disabled' => 'Aвтооновлення було успішно вимкнено',
|
||||
'Cronjob email reporting has been successfully enabled' => 'Cronjob звітування було успішно увімкнено',
|
||||
'Cronjob email reporting has been successfully disabled' => 'Cronjob звітування було успішно вимкнено',
|
||||
'Changes has been saved.' => 'Зміни збережені.',
|
||||
'Changes has been saved.' => 'Зміни збережено.',
|
||||
'Confirmation' => 'Підтвердження',
|
||||
'DELETE_USER_CONFIRMATION' => 'Ви впевнені, що хочете видалити користувача %s?',
|
||||
'SUSPEND_USER_CONFIRMATION' => 'Ви впевнені, що хочете заблокувати користувача %s?',
|
||||
|
@ -434,9 +434,9 @@ $LANG['ua'] = array(
|
|||
'SERVICE_ACTION_FAILED' => 'Не вдалось "%s" "%s"',
|
||||
'IP address is in use' => 'IP адреса використовується',
|
||||
'BACKUP_SCHEDULED' => 'Завдання успішно додано в чергу. Після виконання ви отримаєте повний звіт по пошті.',
|
||||
'BACKUP_EXISTS' => 'Резервне копіювання вже виконується, будь-ласка дочекайтесь закінчення.',
|
||||
'BACKUP_EXISTS' => 'Резервне копіювання вже виконується, будь-ласка, дочекайтесь закінчення.',
|
||||
'RESTORE_SCHEDULED' => 'Завдання успішно додано в чергу. Після виконання ви отримаєте повний звіт по пошті.',
|
||||
'RESTORE_EXISTS' => 'Завдання вже виконується, будь-ласка дочекайтесь закінчення.',
|
||||
'RESTORE_EXISTS' => 'Завдання вже виконується, будь-ласка, дочекайтесь закінчення.',
|
||||
|
||||
'WEB_EXCLUSIONS' => "Вкажіть домени по одному на рядок. Для того, щоб виключити всі, використовуйте *. Щоб виключити тільки деякі теки, використовуйте наступний формат: domain.com:public_html/cache:public_html/tmp",
|
||||
'DNS_EXCLUSIONS' => "Вкажіть домени по одному на рядок. Для того, щоб виключити всі, використовуйте *",
|
||||
|
@ -449,20 +449,20 @@ $LANG['ua'] = array(
|
|||
'MAIL_FROM' => 'Vesta Control Panel <noreply@%s>',
|
||||
'GREETINGS_GORDON_FREEMAN' => "Вітаємо, %s %s,\n",
|
||||
'GREETINGS' => "Вітаємо,\n",
|
||||
'ACCOUNT_READY' => "Ваш аккаунт успішно створений і готовий до використання.\n\nhttps://%s/login/\nІм`я користувача: %s\nПароль: %s\n\n--\nПанель керування Vesta\n",
|
||||
'ACCOUNT_READY' => "Ваш аккаунт успішно створено і готовий до використання.\n\nhttps://%s/login/\nІм`я користувача: %s\nПароль: %s\n\n--\nПанель керування Vesta\n",
|
||||
|
||||
'FTP login credentials' => 'Дані доступу до FTP',
|
||||
'FTP_ACCOUNT_READY' => "FTP аккаунт успішно створений і готовий до використання.\n\nХост: %s\nІм`я користувача: %s_%s\nПароль: %s\n\n--\nПанель керування Vesta\n",
|
||||
'FTP_ACCOUNT_READY' => "FTP аккаунт успішно створено і готовий до використання.\n\nХост: %s\nІм`я користувача: %s_%s\nПароль: %s\n\n--\nПанель керування Vesta\n",
|
||||
|
||||
'Database Credentials' => 'Дані доступу до БД',
|
||||
'DATABASE_READY' => "База даних успішно створена.\n\nБаза даних: %s\nКористувач: %s\nПароль: %s\n%s\n\n--\nПанель керування Vesta\n",
|
||||
|
||||
'forgot password' => 'нагадати',
|
||||
'forgot password' => 'нагадати пароль',
|
||||
'Confirm' => 'Підтвердити',
|
||||
'New Password' => 'Новий пароль',
|
||||
'Confirm Password' => 'Підтвердження паролю',
|
||||
'Reset' => 'Скинути',
|
||||
'Reset Code' => 'Код відновлення',
|
||||
'Reset Code' => 'Код скидання',
|
||||
'RESET_NOTICE' => '',
|
||||
'RESET_CODE_SENT' => 'Код для відновлення паролю успішно відправлено на вашу електронну пошту.<br>',
|
||||
'MAIL_RESET_SUBJECT' => 'Відновлення паролю %s',
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue