Я искал вокруг, но не мог найти учебное руководство о том, как добавить progressbar или уведомление о прогрессе в плазме KDE. Моя цель довольно проста: сделайте резервный сценарий rsync, который разожжен cron/anacron и помещен в/sbin, который будет выполнен как корень и скопирует мою целую систему (через ssh). Кроме того, для показа progressbar в области уведомлений плазмы KDE, когда запуски сценария выполняется cron/anacron. До сих пор использовал сценарий из этого ubuntuusers.de: https://wiki.ubuntuusers.de/Skripte/Backup_mit_RSYNC/
Спасибо!
Хорошо я нашел хорошее решение с помощью zenity. Ниже я присоединил некоторый todos для пользователей, которые не знакомы со всеми они администраторский материал ;)... Что делает сценарий:
Здесь является сценарием:
#!/bin/bash
#preperations...
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:
export DISPLAY=:0.0
export XAUTHORITY=/home/$USER/.Xauthority
#check if host is reachable
ping -c1 -W1 -q $iptoremotehost &>/dev/null #put in the host adress here
status=$( echo $? )
if [[ $status == 0 ]] ; then
#ask if backup should be performed if the remote host is reachable
if
! zenity --question --text "Grab a coffee and perform backup?"; then exit;
fi
#backup Packages
dpkg --get-selections > /pathtoyour/Packages.txt #file needs to be created first
#backup whole machine with some excluded folders (not to produce infinite loops). Take care of -i param in rsync because by default it is not using the right private key for ssh connection (in my case this was a problem).
rsync --rsync-path="sudo rsync" --delete --exclude-from='/pathtoyour/rsync_exclude.txt' -aAXPv -e 'ssh -i /pathtoyour/privatekey' $yoursourcedirectory rsyncuser@$iptoremotehost:$yourdestinationdirectory |
awk -f /pathtoyour/rsync.awk | #this file must be created first!
zenity --progress --title "Full System Backup" \
--text="In process..." --percentage=0 --auto-kill
else
exit
fi
TODO для получения его работа:
Создают $rsyncuser на удаленном хосте и создают группу, где Вы добавляете rsyncuser к и также обычного пользователя. Измените разрешение так, чтобы новая группа могла получить доступ к чтению и записать $destinationpath Вашего резервного копирования. Не забывайте устанавливать ssh ключ к новому пользователю, так, чтобы никакой пароль не требовался когда sshing!
для сохранения правильных полномочий на скопированных файлах и каталогов добавляют, что необходимо позволить $rsyncuser работать sudo rsync
(на удаленной машине) без пароля prombt: sudo visudo
и добавляют rsyncuser ALL = NOPASSWD: /usr/bin/rsync
Захват пиво и выполняют резервное копирование!
rsync.awk:
{
if (index([111], "to-chk=") > 0)
{
split([111], pieces, "to-chk=")
split(pieces[2], term, ")");
split(term[1], division, "/");
print (1-(division[1]/division[2]))*100"%"
}
else
{
print "#"[111];
}
fflush();
}
rsync_exclude.txt:
dev*
proc*
sys*
tmp*
run*
mnt*
lost+found*
home/$USER/.ssh/*
не забывают добавлять каталог, где закрытый ключ Вашего соединения SSH лежит. Иначе это была бы проблема безопасности!
Feedback ценится!