Ubuntu Server Guide


Download 1.23 Mb.
Pdf ko'rish
bet240/277
Sana18.06.2023
Hajmi1.23 Mb.
#1564055
1   ...   236   237   238   239   240   241   242   243   ...   277
Bog'liq
ubuntu-server-guide (1)

Archive Rotation
The shell script in Shell Scripts only allows for seven different archives. For a server whose data doesn’t
change often, this may be enough. If the server has a large amount of data, a more complex rotation scheme
should be used.
Rotating NFS Archives
In this section, the shell script will be slightly modified to implement a grandfather-father-son rotation
scheme (monthly-weekly-daily):
• The rotation will do a daily backup Sunday through Friday.
• On Saturday a weekly backup is done giving you four weekly backups a month.
• The monthly backup is done on the first of the month rotating two monthly backups based on if the
month is odd or even.
Here is the new script:
#!/ b i n / bash
####################################
#
# Backup t o NFS mount s c r i p t with
# g r a n d f a t h e r −f a t h e r −son r o t a t i o n .
#
####################################
# What t o backup .
b a c k u p _ f i l e s =”/home / var / s p o o l / m a i l / e t c / r o o t / boot / opt ”
# Where t o backup t o .
d e s t =”/mnt/ backup ”
# Setup v a r i a b l e s f o r t h e a r c h i v e f i l e n a m e .
day=$ ( d a t e +%A)
hostname=$ ( hostname −s )
# Find which week o f t h e month 1−4 i t i s .
day_num=$ ( d a t e +%−d )
i f ( ( $day_num <= 7 ) ) ; then
w e e k _ f i l e =”$hostname−week1 . t g z ”
e l i f ( ( $day_num > 7 && $day_num <= 14 ) ) ; then
w e e k _ f i l e =”$hostname−week2 . t g z ”
e l i f ( ( $day_num > 14 && $day_num <= 21 ) ) ; then
287


w e e k _ f i l e =”$hostname−week3 . t g z ”
e l i f ( ( $day_num > 21 && $day_num < 32 ) ) ; then
w e e k _ f i l e =”$hostname−week4 . t g z ”
f i
# Find i f t h e Month i s odd o r even .
month_num=$ ( d a t e +%m)
month=$ ( expr $month_num % 2 )
i f [ $month −eq 0 ] ; then
mo n t h _ f il e=”$hostname−month2 . t g z ”
e l s e
mo n t h _ f il e=”$hostname−month1 . t g z ”
f i
# C r e a t e a r c h i v e f i l e n a m e .
i f [ $day_num == 1 ] ; then
a r c h i v e _ f i l e=$ m o n t h _ f il e
e l i f [ $day != ” Saturday ” ] ; then
a r c h i v e _ f i l e =”$hostname−$day . t g z ”
e l s e
a r c h i v e _ f i l e=$ w e e k _ f i l e
f i
# P r i n t s t a r t s t a t u s message .
echo ” Backing up $ b a c k u p _ f i l e s t o $ d e s t / $ a r c h i v e _ f i l e ”
d a t e
echo
# Backup t h e f i l e s u s i n g t a r .
t a r c z f $ d e s t / $ a r c h i v e _ f i l e $ b a c k u p _ f i l e s
# P r i n t end s t a t u s message .
echo
echo ” Backup f i n i s h e d ”
d a t e
# Long l i s t i n g o f f i l e s i n $ d e s t t o check f i l e s i z e s .
l s −l h $ d e s t /
The script can be executed using the same methods as in Executing the Script.
As discussed in the introduction, a copy of the backup archives and/or media can then be transferred off-site.

Download 1.23 Mb.

Do'stlaringiz bilan baham:
1   ...   236   237   238   239   240   241   242   243   ...   277




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling