Kopiowanie plików przez ssh i rsync

Kopiowanie plików przez ssh i rsync, czyni życie łatwiejszym.

One nie mają żadnych katalogów do mapy
Nie należy skopiować wszystkie pliki meher, ale tylko diff

dlatego napisałem wiersz kodu, w którym opisano kopiowanie Solver

rsync -chavzP --stats username@remote-server:/path/to/the/folder/ /local/path/

sprawdzić pliki większy niż 2 GB

Słuchajcie mam intresting codeline znaleźć wszystkie pliki większe od 2 PL Linux

find /var/ -type f -size +20000k -exec ls -lh {} ; 2> /dev/null | awk '{ print $NF ": " $5 }' | sort -nrk 2,2

 

du -a /var | sort -n -r | head -n 10

 

 

ownCloud 5.0.0 wydany

Nowy design
w ownCloud 5, głównym nawigacji został przeprojektowany, aby wyraźnie odróżnić go od nawigacji w aplikacji. Ta aplikacja pozwala również więcej miejsca, a tym samym większy nacisk na zawartość katalogów ownCloud. Ustawienia i menu Wylogowanie zostały połączone w menu użytkownika w prawym górnym rogu, która także pokazuje aktualnie zalogowanego użytkownika i czyni go bardziej intuicyjny w obsłudze. Ustawienia są jeszcze bardziej uproszczone i specyficzne ustawienia aplikacji są przenoszone z ustawień osobistych do odpowiednich aplikacji. Aby pomóc ludziom uzyskać ich dane synchronizowane, pojawiła się nowa strona pierwszy przejazd łączący pulpit & aplikacje mobilne, jak również dokumentację jak synchronizować kontakty i kalendarze. Informacja ta jest również wyświetlana w ustawieniach osobistych - i sprawia, że ​​zaczynasz z ownCloud znacznie łatwiejsze dla użytkownika.

Głównie, Nowa konstrukcja pomaga skoncentrować się na treści i ułatwia poruszanie się i konfiguracja klienci synchronizowane komputery i urządzenia przenośne.

Nowy Antivirus App
Nowe antywirusowe skanowanie systemu w poszukiwaniu wirusów przesłanych plików. Administrator może wybrać, czy zainfekowane pliki powinny zostać automatycznie usunięte i / lub zalogowany / zgłaszane w pliku dziennika.

Nowa funkcja Undelete Files
Teraz użytkownicy mogą przywrócić plik, który został przypadkowo usunięty przez interfejs WWW. Wystarczy wybrać pliki w sekcji Pliki cofnąć i są zwracane do miejsca, gdzie zostały one usunięte, z utrzymywana wersje.

Nowy REST API
Otwórz nowy Collaboration Services (OCS)-oparty REST API dodaje do niego dostęp i sterować zdalnie ownCloud. Nowo wydany OCS 1.7 Spec jest obsługiwana. Główną cechą jest to nowe funkcje API do ściślejszej łączności z komputerów i mobilnych klientów. To jest teraz bardzo łatwe dla ownCloud aplikacje zapewnienie API REST API tak więcej funkcji zostaną dodane w przyszłości.

nazwy wyświetlane
W oknie interfejsu oraz zakładowego, Nazwy mają być wyświetlane zamiast nazw logowania. Nazwy wyświetlane są łatwiejsze do zrozumienia dla użytkowników i mogą być zmieniane przez administratora. Administrator może skonfigurować nazwy wyświetlane i mogą być zmieniane przez samych użytkowników. Nazwy wyświetlane mogą być również pobierane z serwera LDAP lub AD dla większych instalacji. To sprawia, że ​​znacznie łatwiej jest pracować z ownCloud, ponieważ użytkownicy są identyfikowane oddzielnie od ich identyfikatorów systemowych generowanych

Nowa wyszukiwarka
Nowa Lucene oparte pełny tekst wyszukiwarka aplikacja dodaje. Ludzie mogą szukać nie tylko znaleźć pliki według nazwy, ale również treści. Skanowanie odbywa się w tle, aby zapewnić reagujący interfejs użytkownika dla użytkowników.

Nowa galeria zdjęć
ownCloud 5 zawiera ulepszony i przepisany galerię zdjęć. Ma lepsze i usprawniony interfejs użytkownika z funkcją pokazu slajdów. galerie zdjęć można również dzielić z innymi.

Nowy system dokumentacji
Jest zupełnie nowy użytkownik, Administrator i deweloper dokumentacja. Dokumentacja dla użytkownika i administratora jest dostarczany z ownCloud i dostępne w menu pomocy. Dokumentacja deweloper jest dostępna online.

LDAP / udoskonalenia AD
LDAP mogą teraz wyszukiwać w atrybutach, Nie tylko nazwę użytkownika ownCloud. Atrybuty wyszukiwania mogą być skonfigurowane. Wiele user / zasady grupy mogą być skonfigurowane w backend LDAP. backend LDAP obsługuje Paged wyników dla lepszej wydajności, jeżeli serwer oferuje go (wymaga PHP 5.4) LDAP / AD resp zapasowej. Replika gospodarza mogą być skonfigurowane dla środowiska HA. stwardnienie LDAP / Serwery AD może być skonfigurowany.

Ulepszona aplikacja External Storage
Zwiększ wydajność zintegrowanej pamięci pomocniczej, tym Dropbox, Szybki, FTP, Dokumenty Google, S3, WebDAV i zewnętrzne serwery ownCloud, ze znacznie szybciej, bardziej wydajne i łatwiejsze aplikacji zewnętrznej pamięci. Jest to najszybsza droga do osobistej chmurze hybrydowej.

Lepsza Versioning
Wsparcie wersjonowanie plików jest lepsza z inteligentnym algorytmem, który automatycznie wygasa stare wersje, jeśli zabraknie miejsca. Wersjonowanie utrzymuje wersje każdego 2 sekund na pierwszym 10 towary drugiej jakości, każdy 10 sekund do następnego minutę, co minutę przez następną godzinę, co godzinę na następny 24 godziny i jedna wersja na dzień, aż zabraknie miejsca lub kwoty.

Expanded cache file
Pamięć podręczna plik został przebudowany w ownCloud 4.5, i przeszedł niewielki lifting w ownCloud 5.0 w celu zwiększenia szybkości, Wydajność plików zewnętrznych, i skalowalność podziału. System jest też trochę szybsze z nowym pliku cache, i mniej podatne na uszkodzenia w produkcji.

Ulepszone zarządzanie aplikacje
Kierownictwo wysłane i aplikacje 3rd-Party in ownCloud ulega poprawie. 3aplikacje rd producentów mogą być łatwo instalowane w centralnym repozytorium apps (apps.owncloud.com) i są automatycznie usuwane z serwera, gdy wyłączony. Jeśli nowa wersja aplikacji na 3rd strona została opublikowana przez autora pojawi się przycisk Aktualizacja na stronie apps wewnątrz ownCloud a on aplikację można łatwo zaktualizować za pomocą jednego kliknięcia. Więcej informacji zwrotnych teraz przekazana użytkownikowi podczas długich prowadzących instalację i aktualizowanie operacji. Polecane aplikacje są widoczne na liście aplikacji za pomocą „Zalecana” etykiety, dzięki czemu użytkownicy mogą znaleźć wysokiej jakości aplikacje lepiej.

ulepszone zakładki
Interfejs użytkownika aplikacji zakładek jest lepsza i dużo łatwiejszy w obsłudze.

Lepsze kontakty
Kontakty są teraz organizowane przez grupy (kategorie) zamiast książek adresowych dając bardziej intuicyjny dostęp do znajomych, Współpracownicy, Rodzina etc. Główny widok przedstawia przegląd najbardziej istotnych dziedzinach i ilość informacji dostosowuje się automatycznie w zależności od rozmiaru okna przeglądarki lub urządzenia. UI internetowych jest teraz w całości napisany w języku JavaScript dając bardziej czułe doświadczenia użytkownika.

Lepsza synchronizacja
Pulpit synchronizacji klientów i klientów mobilnych poprawiły komunikację z serwerem i może synchronizować szybciej z mniejszym obciążeniem serwera.

Ulepszony kalendarz
Kalendarz ma teraz wsparcie dla sklasyfikowanej oraz możliwością deklarowania zdarzenia jako poufne lub publiczne. Dzielenie się poprawiła i kompatybilność z klientami rozszerzony.

Ogólne poprawki
Ogólnie, było kilka poprawek, ulepszenia interfejsu użytkownika, oraz poprawa wydajności. Przede wszystkim oznacza poprawę w działaniach zapisu dysków 5x, a także lepszą ogólną skalowalność ownCloud całej planszy.

  • Wsparcie Windows Server rozszerzony
  • przeglądarka plików PDF jest aktualizowana w celu zwiększenia wydajności i kompatybilności
  • Ulepszony odtwarzacz multimedialny
  • Poprawiona ogólna wydajność
  • Zwiększona wydajność pobrania
  • Pokaż rozmiar pliku i postęp w czasie pobierania

Więcej informacji tutaj: http://owncloud.org/features

1006 Upoważnienie aplet nie jest w pełni załadowany

Aby rozwiązać ten problem, trzeba to zrobić rzeczy:

  • usuwać pkcs_11 folderu %USERPROFILE%AppDataLocalTemppkcs_11
  • Jawa < 7 (Jawa 7 Aktualizacja 17) Pamięć podręczna przeglądarki czysty cache Java czysty rozruch „Panel sterowania” szukaj java „Tymczasowe pliki internetowe” -> „ustawienia”
  • pliki usuwać
  • widok kompatybilny
  • zaufane strony

Mini / analizowanie pliku zrzutu

Aby otworzyć plik zrzutu, trzeba odpowiednie narzędzie do debugowania, które można pobrać z Microsoft:

Pobieranie (11,3 MB): http://msdl.microsoft.com/download/symbols/debuggers/dbg_x86_6.4.7.2.exe

Po zainstalowaniu programu, można użyć debuggera „Początek” -> „Program” -> „Debugging Tools for Windows” -> „WinDbg” początek.

Tak naprawdę użyteczna praca może używać debuggera, są również tak zwane. Symbol potrzebne pliki. Ponieważ jednak w pełni z około. 170 bić MB zamówić, ale oni na pewno chcą oceniać takie pliki zrzutu nie codziennie, należy ustawić droga, że sama WinDBG niezbędne pliki z Internetu przynosi.

Upewnij się, że następujące:

menu „Plik” -> „Sybol Ścieżka pliku” wpisać w polu wprowadzania:

SRV*C:Symbols*http://msdl.microsoft.com/download/symbols

Następnie otwórz program plik zrzutu z katalogu „%SystemRoot% Minidump” o „Plik” -> „Otwarte zrzutu awaryjnego”

Teraz plik jest załadowany, a informacje wyświetlane. Dwa okna są otwarte „Dowództwo” i „demontaż”. okno „demontaż” Można bezpiecznie zamknąć ponownie, ponieważ ich oceny, ale już zakłada znaczne umiejętności programowania.

Das „Dowództwo”-Z drugiej strony okno zawiera przede wszystkim już bardzo cenne informacje. Można znaleźć ciekawe informacje, patrz:

***************************

* Analiza operacji wykrywania błędów *

***************************

Tutaj znajdziesz, na przykład,: za „operacji wykrywania błędów” kod błędu. Ten kod błędu można wtedy również przeszukiwać Microsoft Knowledge Base (http://support.microsoft.com/search/) stosowanie. Jeśli kod błędu znany, Znajdziesz najdokładniejsze informacje, którego kierowca spowodował ten błąd i często odpowiednie rozwiązania.

ale można ustalić na temat tego kodu błędu w debuggera już więcej. Wprowadź go w oknie poleceń wpisz polecenie „!analizować -v” ein.

Wtedy dużo informacji jest odtwarzany; tutaj jest w pierwszych liniach słowo pisane wielkimi literami, reprezentujący typ błędu.

Jeśli potrzebujesz dodatkowych informacji z pomocą poza, wpisać w okno poleceń „.hh [Słowo pisane wielkimi literami]” ein.

Ponadto można znaleźć linię „Prawdopodobnie spowodowane przez” (= Błąd spowodowany:). oznacza to,, który plik został prawdopodobnie przyczyną błędu. Z tego pliku, można również uruchomić odpowiedni wyszukiwanie w internecie ponownie.

Jeśli masz nazwę pliku, można dać więcej informacji zobaczyć również w oknie poleceń. polecenie „LM vm[Nazwa pliku]” uzyskać więcej informacji. Tu, nazwa pliku musi być wprowadzony bez rozszerzenia. Nazwa pliku jest bezpośrednio, tuż za parametru m (bez spacji) wkład.

Z polecenia „!węzła urządzenia 0 1” Nadal można wydrukować listę wszystkich załadowanych sterowników.

Dlatego nie przyjść, Można sprawdzić polecenie „!wątek” W oknie wiersza polecenia, wyświetlić więcej informacji. Znajdź w linii wyjściowej „Lista IRP”, Następnie należy zasięgnąć więcej informacji na temat adresów. Aby to zrobić, należy użyć polecenia „!IRP [podczas wizyty w]” na. W kolekcji znajdziesz coś nazwę sterownika, były zaangażowane w błąd.

Więcej informacji na temat błędów i debugowania pod:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ddtools/hh/ddtools/TOC_Debugging_b61a3911-d5dc-42de-96af-deb0d7df233b.xml.asp?frame=true

Jeśli utkniesz siebie i odpowiednie wnioski w forach itp. chcesz umieścić, Należy zawsze wszystko od sekcji „Analiza operacji wykrywania błędów” uchodzić za informacje.

(tych) winfaq

550 5.1.1 RESOLVER.ADR.ExRecipNotFound; nie znaleziono

błąd:

IMCEAEX-_O=domain_OU=EXCHANGE+20ADMINISTRATIVE+20GROUP+20+28FYDIBOHF23SPDLT+29_CN=RECIPIENTS_CN=user@domain.de
#550 5.1.1 RESOLVER.ADR.ExRecipNotFound; not found ##

rozwiązanie:

X500 wpis Tworzenie adres e-mail

/O=DOMAIN/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=user

iR5051 Kod End #860

jeśli masz int drukarka zalogować kod błędu 860 a następnie za pomocą sterownika UFRII Dodaj drukarkę bezpośrednio przez TCP / IP na mac

ISP Config Server Backupscript

Usłyszeć masz doskonały scenariusz zapasowy ISP Config

#!/bin/bash
version="0.9.4 from 2010-09-13"
# Always download the latest version here: http://www.eurosistems.ro/back-res
# Thanks or questions: http://www.howtoforge.com/forums/showthread.php?t=41609
#
# CHANGELOG:
# -----------------------------------------------------------------------------
# version 0.9.4 - 2010-09-13
# --------------------------
# Small fix: - Corrected small bug replaced tar with $TAR in the recovery line
# of the databases. (The line: mysql -u$dbuser -p$dbpassword $rdb <)
# Thanks goes to Nimarda and colo.
# -----------------------------------------------------------------------------
# version 0.9.3 - 2010-08-01
# --------------------------
# Small fix: - Modified del_old_files function to remove "/" from the $to_del
# variable used to delete old files
# - Removed from del_old_files function the section used to keep old
# databases (It's not working if there is no space left on device). Added
# in TODO section
# -----------------------------------------------------------------------------
# version 0.9.2 - 2010-04-18
# --------------------------
# Always download the latest version here: http://www.eurosistems.ro/back-res
# Thanks or questions: http://www.howtoforge.com/forums/showthread.php?t=41609
#
# Fixes: - First run now does not gives errors (Thanks nokia80, Snake12,
# rudolfpietersma, HyperAtom, jmp51483, bseibenick, dipeshmehta, andypl
# and all others)
# - Modified the log function to accept first time dir createin
# - Modified the starting sequence to not check the free space if the
# primary backup directory does not exist
# - If primary backup dir does not exist now it's created at the start
# - Added a line to remove the maildata at the start if the user stops
# the script before finishing his jobs. This prevents the script to send
# incorect mails.
# - Added link http://www.howtoforge.com/forums/showthread.php?t=41609
# maybe some of the downloaders will visit the forum.
# - Added first TODO
# -----------------------------------------------------------------------------
# beta version 0.9.1 - first public release last modified 2009-12-06
# moved to http://www.eurosistems.ro/back-res.0.9.1
# -----------------------------------------------------------------------------
# TODO: - Add required files check (tar, bzip2, mail, etc.)
# - Create a better del_old_files function (2010-08-01)
# - If you need anything else I'll be happy to do it in my spare time if
# you ask here: http://www.howtoforge.com/forums/showthread.php?t=41609
#
# Prawo autorskie (do) go0ogl3 gabi@eurosistems.ro
# If you want to reward my work donate a small amount with Paypal (use my mail)
#
# If you enjoy my script please register and say thank you here:
# http://www.howtoforge.com/forums/showthread.php?t=41609
# This is to keep the thread alive so this script can help other people too.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# The above copyright notice and this permission notice shall be included in
# all copies of the script.

# description: A backup and restore script for databases and directories
#
# The state of development is "It works for me"!
# So don't blame me if anything bad will happen to you or to your computer
# if you use this script.
# I've done my best to make myself understood if you read on.
#
# Detailed Description
#
# Full dir, mysql and incremental backup script
# Full and incremental restore script
# It's meant to use minimum resources and space and keep a loooong backup.
# I've tried to make as more checks as possible but I can't beat "mądry" users.
# Weird things can happen if your backup dirs includes the "-" lub "_" chars.
# Those chars are used by this script and files formed by the script.

### Backup part -=============================
#
# Important!!! Make sure your system has a correct date. Suggestion: use ntp.
# Backup is not meant to be interactive, it's meant to be run daily from cron.
# That's why the log for backup is kept in logdir $BACKUPDIR/log/backup.log
# On the 1st of the month a permanet full backup is made.
# The rest of the time an incremental backup is made, by date.
# Databases are at full allways and the script makes an automatic repair and
# optimizes the databases before the backup.

### Ostrzeżenie!!! ###
# If you set the "del_en" variable to "yes" the script will delete the old
# backups to make room for the new ones. Read on.

### Ostrzeżenie!!! ###
# All incremental backups and databases for a month will be deleted if space
# is less than the maximum percent of used space "maxp".

# You need to take care to not enter in an endless loop if you set del_en="yes"
# The loop can happen if deleted files form $BACKUPDIR don't decrease the
# percent of used space
# The script check for some dirs and files and it's supposed to be run as root
# The script is supposed to be run daily from cron at night like
# 40 3 * * * /etc/back-res 1>/dev/null 2>/dev/null
# This scripts verifies and corrects all errors found in ALL mysql databases
# The script also makes full backups of ALL mysql databases every time it's run
#
# Restore part -============================

# Restore is meant to be little interactive, the messages are on standard output
# Dir's are restored verbose with tar by default.
# Last minute of the day "$hm" is set to 2359 but the backup is started at 03:40
# so this should be set AFTER the backup has ended! At 23:59 of the backup day
# we can have many files modified from the 03:40. The not so perfect solution is
# to backup later in the day (23:00) and hope the backup finishes until 23:59
# My server is still loaded on the 23:00, so I use 03:40 in cron and hm=2359
# because a full backup last for more than 16 hours for tar.bz2
# For sure I will loose all files created between 03:40 i 23:59 of that day.
# To prevent that I can restore files one day AFTER the day I want to restore
# and use find --newer to delete unwanted files.

# To restore dirs make sure you have the full backup from that month and use:
# `back-res dir /etc 2009-11-23 /`
# to restore the "/itp" dir from date 2009-11-23 to root
# `back-res dir /etc 2009-11-23 /tmp` is used to restore the "/itp" dir to /tmp
#
# `back-res dir all 2009-11-23 /`
# to restore all directories from date 2009-11-23 to root

# To restore databases use:
# `back-res db mysql 2009-11-23`
# to restore the "mysql" database from date 2009-11-23 to local mysql server
#
# `back-res db all 2009-11-23`
# to restore all databases from date 2009-11-23 to local mysql server

###############################
### Begin variables section ###
###############################

# Change the variables below to fit your computer/backup

COMPUTER=`cat /etc/HOSTNAME | awk 'NR==1{print $1}'` # name of this computer
DIRECTORIES="/bin /boot /etc /home /lib /lib64 /root
/sbin /usr /var /www" # directories to backup
EXCLUDED="/bck /tmp /dev /proc /sys /srv /media
/var/adm /var/cache /var/lib/mysql
/var/run /var/lock /lib/init/rw /var/tmp
/var/log/verlihub /var/lib/amavis /var/amavis /var/spool/postfix/p*
/var/spool/postfix/var *.pid *.lock *.lck" # exclude those dir's and files
BACKUPDIR="/bck/$COMPUTER" # where to store the backups
dbuser="root" # database user
dbpassword="yourpassword" # database password
email="backup@yourdomain.com" # mail for the responsible person
TAR=`which tar` # name and location of tar
ARG="-cjpSPf" #sparse # tar arguments P = removed /.
EARG="-xjpf" # tar extract arguments P = removed /
tmpdir="/tmp/tmpbck" # temp dir for database dump and other stuff
del_en="yes" # Enable delete of files if used space percent > than $maxp (yes or anything else)
maxp="85" # Max percent of used space before start of delete
hm="2359" # last minute of the day = last minute of the restored backup of the day restored

###################################
### End user editable variables ###
###################################

#########################################################
# You should NOT have to change anything below here #
#########################################################

me=`basename $0`
headline="
---------------------=== The back-res script by go0ogl3 ===---------------------
"
usage="$headline
The backup part requires some configuration in the header of the script
and it's supposed to be run from cron.
The restore part it's supposed to be run from command line.
restore part Usage:
t $me [type-of-restore] [dir|db] [YYYY-MM-DD] [path]

t $me dir [dir-to-restore] [to-date] [path]
t $me dir all [to-date] [path]
t $me db [db-to-restore] [to-date]
t $me db all [to-date]

Where 'dir' or 'db' to restore is one of the configured dirs or db's to
backup, or 'all' to restore all dirs or db's.
Date format is full date, year sorted, YYYY-MM-DD, like 2009-01-30.
'path' is for dirs and is the path on which you want to extract the backup.
If the path to extract is not set, then the backup is extracted on /.
For more info read the header of this script!
-===--===--===--===--===--===--===--===--===--===--===--===--===--===--===--===-
"

backup () {

gdyby [ -n "$1" ] ; then
echo -e "$usage"
exit
fi

DOM=`date +%d` # Date of the Month, DD, na przykład. 27
FDATE=`date +%F` # Full Date, YYYY-MM-DD, year sorted, na przykład. 2009-11-21
MDATE=`date +%Y-%m` # Data, YYYY-MM, na przykład. 2009-09

#################
### Functions ###
#################

function log {
acum=`date "+%Y-%m-%d %H:%M:%S"` # I like this type of date. Syslog type doesn't use the year.
gdyby [ -e $BACKUPDIR/log/backup.log ]; następnie
Echo "$acum - `basename $0` - $1" >> $BACKUPDIR/log/backup.log
echo "$acum - `basename $0` - $1" >> $tmpdir/maildata
else
if [ ! -d $BACKUPDIR/log ]; then
mkdir $BACKUPDIR/log
if [ -n "$log1" ]; następnie
Echo "$log1" >> $BACKUPDIR/log/backup.log
echo "$log1" >> $tmpdir/maildata
fi
echo "$acum - `basename $0` - First run: log dir and log file created." >> $BACKUPDIR/log/backup.log
echo "$acum - `basename $0` - First run: log dir and log file created." >> $tmpdir/maildata
else
echo "$acum - `basename $0` - First run: log file created." >> $BACKUPDIR/log/backup.log
echo "$acum - `basename $0` - First run: log file created." >> $tmpdir/maildata
fi
echo "$acum - `basename $0` - $1" >> $BACKUPDIR/log/backup.log
echo "$acum - `basename $0` - $1" >> $tmpdir/maildata
fi
}

function check_mdir {
log "Checking if month dir exist: $BACKUPDIR/$MDATE"
gdyby [ -d $BACKUPDIR/$MDATE ] ; then
log "Backup dir $BACKUPDIR/$MDATE exists"
else
mkdir $BACKUPDIR/$MDATE
log "Month dir $BACKUPDIR/$MDATE created"
fi
}

function check_tempdir {
log "Checking if temp dir exist: $tmpdir"
gdyby [ -d $tmpdir ] ; then
log "Temp dir $tmpdir exists"
else
mkdir $tmpdir
log "Temp dir $tmpdir created"
fi
}

function del_old_files {
to_del=`ls -ctF $BACKUPDIR | grep -v ^log/ | ogon -n 1 | sed 's////g'` # sort files in ctime order and select the first modified, except the log dir
#if [ -re "$BACKUPDIR/$to_del" ] ; następnie
# # recover db backups and store only the ones from de first day of month or from the first full backup of dirs
# # list all db backups in month dir, extract first date
# day=`ls -ct $BACKUPDIR/$to_del | ogon -n 1 | cut -d "-" -fa 5 | cut -d "." -f 1`
# # then list all db file names
# dblist=`ls -ct $BACKUPDIR/$to_del | grep $to_del-$day`
# for db in $dblist; do
# mv $BACKUPDIR/$to_del/$db $BACKUPDIR/$db # moving files keeps creation date
# Gotowe
# log "Kept db's from $to_del-$day"
#else
rm -rf $BACKUPDIR/$to_del
log "Deleted old: $BACKUPDIR/$to_del"
count=0
while [ $count -lt 3 ]
do
count=$(($count+1))
#echo $count argmax # for test
check_space
done
#fi
}

#pfs="95" # for test

function check_space {
#pfs=$(($pfs-1)) # for test
pfs=`df -h $BACKUPDIR | awk 'NR==2{print $5}' | cut -d% -f 1`
#pfs="90"

gdyby [ $pfs -gt $maxp ] ;then
log "There is $pfs% space used on $BACKUPDIR"
gdyby [ $del_en = "yes" ] ; then
del_old_files
else
log "No free space and del_en=$del_en so we abort here and send mail to $email"
-s poczty "Daily backup of $COMPUTER `date +'%F'`" "$e-mail" < $tmpdir/maildata
exit
fi
else
log "Percent used space $pfs% on $BACKUPDIR ok."
fi
}

function db_back {
#Replace / with _ in dir name => filename
#DIR_NAME=`echo "$DIRECTORIES" | awk '{gsub("/", "_", $0); print}'`

### All db's check and correct any errors found

log "Starting automatic repair and optimize for all databases..."
mysqlcheck -u$dbuser -p$dbpassword --all-databases --optimize --auto-repair --silent 2>&1
### Starting database dumps
for i in `mysql -u$dbuser -p$dbpassword -Bse 'show databases'`; do
log "Starting mysqldump $i"
`mysqldump -u$dbuser -p$dbpassword $i --allow-keywords --comments=false --add-drop-table > $tmpdir/db-$i-$FDATE.sql`
$TAR $ARG $BACKUPDIR/$MDATE/db-$i-$FDATE.tar.bz2 -C $tmpdir db-$i-$FDATE.sql
rm -rf $tmpdir/db-$i-$FDATE.sql
log "Dump OK. $i database saved OK!"
Gotowe
}

#############
### START ###
#############
rm -f $tmpdir/maildata
if [ -d $BACKUPDIR ] ; then
check_space
else
mkdir $BACKUPDIR
log1="$acum - `basename $0` - First run: primary dir $BACKUPDIR created."
log "First run: primary dir $BACKUPDIR created."
fi
check_mdir
check_tempdir
rm -rf $tmpdir/excluded
for a in `echo $EXCLUDED` ; do
exfile=`echo -e $a >> $tmpdir/excluded`
done
#exit
db_back

for i in `echo $DIRECTORIES` ; do
XX=`echo $i | awk '{gsub("/", "_", $0); print}'`
YX=`echo $i | awk '{print $1}'`
fb=`ls $BACKUPDIR | grep ^full$XX-`
if [ -z $fb ] ; then
log "No full backup found for $YX. Full backup now!"
Echo > $tmpdir/full-backup$XX.lck
$TAR $ARG $BACKUPDIR/full$XX-$FDATE.tar.bz2 $YX -X $tmpdir/excluded
log "Backup of $YX done."
fi

# Monthly full backup
if [ $DOM = "01" ] ; then
log "Starting full monthly backup for: $YX"
$TAR $ARG $BACKUPDIR/full$XX-$FDATE.tar.bz2 $YX -X $tmpdir/excluded
log "Full monthly backup for $YX done."
jeszcze
# If it's not the first day of the month we make incremental backup
if [ ! -e $tmpdir/full-backup$XX.lck ] ; then
log "Starting daily backup for: $YX"
NEWER="--newer $FDATE"
$TAR $NEWER $ARG $BACKUPDIR/$MDATE/i$XX-$FDATE.tar.bz2 $YX -X $tmpdir/excluded
log "Daily backup for $YX done."
else
log "Lock file for $YX full backup exists!"
fi
fi
# Clean full backup directory lock file
rm -rf $tmpdir/full-backup$XX.lck
done

#Clean temp dir
rm -rf $tmpdir/excluded
# End of script
log "All backup jobs done. Exiting script!"
}

restore () {

del_res ()
{
# We now need to remove the newer files created after the restored backup date.
to_rem=`find $path/$2 -newer $tmpdir/dateend`
echo -en "n$headlinen For a clean backup restored at $3 we need now to delete the filesncreated after the backup date.n If exists, a list of files to be deleted follows:nn"
for a in $to_rem ; do
echo -e "To be removed: $za"
done
echo -en "nPlease input "yes" to delete those files, if they exist, and press [ENTER]: "
read del
if [[ "$del" = "yes" ]] ; then
for a in $to_rem ; do
rm -rf $a
done
echo -en "All restore jobs done!nDir $2 restored to date $3!n"
exit
fi
}

gdyby [ -z "$4" ] ; then
path="/"
else
path=$4 # this is the path where to extract the files
fi

RDATE=$3
DOM=`echo $RDATE | cut -d "-" -f3` # Date of the Month eg. 27
MDATE=`echo $RDATE | cut -d "-" -f2`
YDATE=`echo $RDATE | cut -d "-" -f1`

type=$1
dir=`echo $2 | awk '{gsub("/", "_", $0); print}'`

if [ -z "$3" ] ; then
echo -e "$usage"
exit
fi

# poor date input verification: ${#RDATE} is 10 for a correct date 2009-01-30
# find the first possible restore date=day
year=`ls -ctF $BACKUPDIR | grep -v ^log/ | ogon -n 1 | cut -d "-" -f 2`
md=`ls -ctF $BACKUPDIR | grep -v ^log/ | ogon -n 1 | cut -d "-" -f 3`
day=`ls -ctF $BACKUPDIR | grep -v ^log/ | ogon -n 1 | cut -d "-" -fa 4 | cut -d "." -f 1`
resdate=$year$md$day

dh="1234"
err=`touch -t $YDATE$MDATE$DOM$dh $tmpdir/datestart 2>&1`

if [ -n "$err" ] & [ ${#RDATE} != 10 ] ; then
#echo "err = $err"
echo -e "$usage"
echo -e "Invalid date format. Correct YYYY-MM-DD. Ex.: 2009-01-14n"
exit
fi

# check to see if user inputs date in future
TD=`date +%s` # today in epoch
ID=`date --date "$RDATE" +%s` # input date in epoch
RD=`date --date "$resdate" +%s` # first backup date in epoch

if [ "$ID" -dać "$TD" ] ; then
echo -e "$usage"
echo -e "Invalid date format. Date supplied $RDATE is in the future!n"
exit
fi

if [ "$RD" -GT "$ID" ] ; then
echo -e "$usage"
echo -e "Invalid date format. Date supplied $RDATE is before the first backup on $year-$md-$day!n"
exit
fi

#echo "Checking if path dir exist: $path"
gdyby [ $type = "dir" ] ; następnie
# echo $dir and $path
if [ -d $path ] ; then
if [ -n "$path" ]; then
mesaj=""
fi
else
mesaj="Extraction dir $path invalid"
exit
fi
fi

# We now prompt the user with the info entered on the comand line.
# clear
echo -en "n You want to restore $1 $2 to date $3.nnPlease input "yes" if the above is ok with you and press [ENTER]: "
read ok

if [[ "$ok" = "yes" ]] ; then
if [[ "$1" == "dir" ]] ; then
if [[ "$2" == "wszystko" ]] ; then
echo -en "nExtracting all dir's backup from date $3 to $path:n"
sen 5 # We wait 5 secs for the user to see what's happening.
jeszcze
# We suppose the user uses /dir
if [[ "$DIRECTORIES all" =~ "$2" ]] ; then
echo -en "nTrying to restore $2 dir's backup from date $3 to $path:nn"
# we say "trying" because if the requested dir is "al" it matches!
sen 5
fi
fi
elif [[ "$1" == "db" ]] ; then
if [[ "$2" == "wszystko" ]] ; then
echo -en "nRestoring all mysql databases from date $3 to local server:n"
sen 5
else
if [[ "$dblist" =~ "$2" ]] ; then
echo -en "nTrying to restore $2 database backup from date $3 to local server:nn"
# we say "trying" because it's an imperfect check, same as above
sleep 5
fi
fi
fi
else
echo -en "nInvalid entry. Exiting script...nn"
exit
fi

dst="010000" # first minute of the first day
touch -t $YDATE$MDATE$dst $tmpdir/datestart 2>&1
touch -t $YDATE$MDATE$DOM$hm $tmpdir/dateend 2>&1
gdyby [ $type = "dir" ] ; then
if [[ "$DIRECTORIES all" =~ "$2" ]] ; then
if [ $dir = "wszystko" ] ; then
farh=`find $BACKUPDIR -maxdepth 1 -type f -newer $tmpdir/datestart -a ! -newer $tmpdir/dateend | sed 's_.*/__' | grep ^full_`
arh=`find $BACKUPDIR/$YDATE-$MDATE -maxdepth 1 -type f -newer $tmpdir/datestart -a ! -newer $tmpdir/dateend | sed 's_.*/__' | grep -v ^db-`
# echo farh este $farh
# echo arh este $arh
else
farh=`find $BACKUPDIR -maxdepth 1 -type f -newer $tmpdir/datestart -a ! -newer $tmpdir/dateend | sed 's_.*/__' | grep $dir | grep ^full_`
# echo farh e $farh
arh=`find $BACKUPDIR/$YDATE-$MDATE -maxdepth 1 -type f -newer $tmpdir/datestart -a ! -newer $tmpdir/dateend | sed 's_.*/__' | grep $dir | grep -v ^db-`
# echo arh e $arh
fi
for f in $farh ; do
echo -en "tExtracting $f...nn"
$TAR $EARG $BACKUPDIR/$f -C $path &>/dev/null
# if the day is 01 the the full backup is recovered so we need to clean newer files created after the backup date.
gdyby [ $DOM = "01" ] ; then
del_res $path $2 $3 $tmpdir
fi
done
for i in $arh ; do
echo -en "tExtracting $i...nn"
$TAR $EARG $BACKUPDIR/$YDATE-$MDATE/$i -C $path &>/dev/null
done
del_res $path $2 $3 $tmpdir
else
mesaj="Invalid directory to restore!"
fi
elif [ "$type" = "db" ] ; then
db=$2
# here we build the db list to restore from the files we backed up before in the day requested
dblist=`find $BACKUPDIR/$YDATE-$MDATE -maxdepth 1 -type f | sed 's_.*/__' | grep ^db- | grep $YDATE-$MDATE-$DOM | cut -d "-" -f2`
dblist="$dblist all"
#echo $dblist
for d in $dblist ; do
if [ "$re" == "$2" ] ; then
if [ "$db" = "wszystko" ] ; następnie
# get db list from backup and restore all db's
arh=`find $BACKUPDIR/$YDATE-$MDATE -maxdepth 1 -type f | sed 's_.*/__' | grep ^db- | grep $YDATE-$MDATE-$DOM`
else
arh=`find $BACKUPDIR/$YDATE-$MDATE -maxdepth 1 -type f | sed 's_.*/__' | grep ^db- | grep $db- | grep $YDATE-$MDATE-$DOM`
fi
for i in $arh ; do
rdb=`echo $i | cut -d "-" -f2`
mysql -u$dbuser -p$dbpassword $rdb < $TAR -xvjp $BACKUPDIR/$YDATE-$MDATE/$i
done
echo -en "All restore jobs done!nDatabase $2 restored to date $3!n"
fi
done

if [ -z "$rdb" ] ; then
mesaj="Invalid database to restore!"
fi

else
echo -e "$usage"
mesaj="Invalid type specified"
fi

jeśli [ -n "$mesaj" ] ; then
echo -e "$usage"
echo -en "tt###t$mesajt###nn"
fi

# Send accumulated maildata an cleanup
mail -s "Daily backup of $COMPUTER `date +'%F'`" "$e-mail" < $tmpdir/maildata
rm -rf $tmpdir/datestart
rm -rf $tmpdir/dateend
rm -rf $tmpdir/excluded
rm -rf $tmpdir/maildata

}

case "$1" in
dir)
restore $1 $2 $3 $4
;;
db)
restore $1 $2 $3 $4
;;
version)
echo $headline
echo -e "nVersion $versionn"
;;
*)
backup $1
wyjście 1
esac

 

hybris Gliwice / Polska Harlem wstrząsnąć

cześć wszystkim,

To wspaniałe, że hybris uczestniczy w wielu działaniach, nawet te, które nie mają większego sensu. jot

W imieniu Zespołu Gliwicach w Polsce pragnę zaprosić Państwa do naszego Harlem drgania. Proszę spojrzeć na wideo i cieszyć!