導航:首頁 > 操作系統 > linux文件自動備份

linux文件自動備份

發布時間:2022-06-17 04:41:39

linux自動備份怎麼搞,最好是具體到執行命令

#!/bin/sh
#BAKDIR可以換一個自己喜歡的
BAK_DIR=/backup
#*為未知,自己查一下怎麼取星期啦,要0-6那個
DATE=$(date+%*)
#自己查一下怎麼周數啦
WEEK=$(date+%*)
#備份文件名
FULL_BAK=full_back.$WEEK.tar.bz2
INCRE_BAK=increment_back.$WEEK.$DATE.tar.bz2
#其實沒什麼不同的,只是要改文件名而已
if[$DATE-eq0];then
tar-g$BAK_DIR/sn.$WEEKcjf$BAK_DIR/$FULL_BAK
else
tar-g$BAK_DIR/sn.$WEEKcjf$BAK_DIR/$INCRE_BAK
fi
exit$?
#把任務加到crontab里就行了,每天執行一次
================
#!/bin/sh
BAK_DIR=/backup
#還原目錄
RECOVER_DIR=/
FULL_BAK=full_back.$WEEK.tar.bz2
INCRE_BAK=increment_back.$WEEK.$DATE.tar.bz2
echo-n"recoverfromweek:「
readWEEK

if[-e$BAKDIR/$FULL_BAK];
then
tarxjf$BAK_DIR/$FULL_BAK-C
$RECOVER_DIR
forNin$(seq6);do
if[-e$BAK_DIR/$INCRE_BAK];then
tarxjf$BAK_DIR/$INCRE_BAK-C$RECOVER_DIR
fi
done
else
echo"Backupfilenotexist!!exitnow~~"
fi
exit$?

⑵ LINUX 自動備份怎麼實現

首先我在/root/backup 目錄下建立一個文件夾,

#mkdir /root/backup/mysqlbackup

以後在每天五點鍾,就會有一個文件保存在這里.

接著新建文件

#vim /root/mysqlautobak

輸入:

filename=` date +%Y%m%d `

mysqlmp --all-databases -uroot -p(mysql密碼)> /root/backup/mysqlbackup/mysql$file.sql保存退出!

讓它可以執行

#chomd +X /root/mysqlautobak

接著開始完crontab了

#vi /etc/crontab添加一行01 5 * * * root /root/mysqlautobak

保存退出.

重新啟動你的crond服務進程

# /etc/rc.d/init.d/crond restart

===============================================================================

hp unix 自動全備份腳本(shell)

說明:每天夜裡10點自動備份並且壓縮,保留2天備份,在備份完當天後刪除前天的備份。在一切執行之後,發郵件通知,郵件內容有刪除文件和備份文件名稱及備份開始時間,結束時間。
使用方法:nohup backup.sh &

filename:backup.sh
reportlist=""
while [ 1 ]
do
hou=`date +%H`
backdate=`date +%Y%m%d`
if [ $hou -eq 22 ]
then
begintime=`date +%Y-%m-%d:%H-%M`
cd /data_log2/for_test
log_txt=`ls -al -crt log.txt | awk '{print $9}' | wc -l`
if [ $log_txt -gt 0 ]
then
mv log.txt log.txt.bak
fi

exp owner=user file=/data_log2/for_test/tmp_now.dmp
compress /data_log2/for_test/tmp_now.dmp
mv tmp_now.dmp.Z report_$backdate.dmp.Z
echo "---------report database backuped----------- ">> log.txt
echo "filename="report_$backdate.dmp.Z >>log.txt

delfile=`ls -al -crt *.Z | awk '{print $9}' | head -1`
count=`ls -al -crt *.Z | awk '{print $9}' | wc -l`

if [ $count -gt 2 ]
then
rm `ls -al -crt *.Z | awk '{print $9}' | head -1`
echo "----------- old backup deleted ---------" >> log.txt
echo "the deleted backup filename="$delfile >> log.txt
fi

echo "-----------------beigin time----------------" >> log.txt
echo $begintime >> log.txt
echo "-----------------end time----------------" >> log.txt
echo `date +%Y-%m-%d:%H-%M` >> log.txt

rm log.txt.bak

mailx -s "10.203.116.23 daily database backup" -r ")" $reportlist < log.txt
fi

sleep 3600
done

======================================================================================
1 給我自己的伺服器寫的一段自動備份的shell
#!/bin/bash

#指定要備份的系統目錄
SYSTEM_DIR=/home

#指定要備份的目錄MAIL_DIR=mailbox #郵件目錄
WEBSITE_DIR=www/html #WEB目錄
DATABASE_DIR=databases #資料庫目錄

#指定備份文件的前綴
MAIL_PREFIX=mail
WEBSITE_PREFIX=web
DATABASE_PREFIX=database

#有朋友的一台WIN2K伺服器,我在上面開了ftp,把備份文件傳到他的伺服器上,相當於我實現了個雙機備份

#ftp伺服器的IP
FTP_SERV=211.144.155.111
#ftp用戶名
FTP_USER=username
#ftp密碼
FTP_PASS=12345678

#備份文件存放目錄
BACKUP_DIR=/home/backup

#格式化一下日期,備份文件時用日期來做文件名的
DATE=`date +%Y%m%d`

#開始備份郵件
if [ -f ${BACKUP_DIR}/${MAIL_PREFIX}${DATE}.tar.gz ]; then #如果當天的郵件已經備份,那沒跳過
echo `date +%Y-%m-%d`'s mail backup file is existing
else #如果沒有備份,那麼用tar命令來打包郵件目錄
tar -czvf ${BACKUP_DIR}/${MAIL_PREFIX}${DATE}.tar.gz ${SYSTEM_DIR}/${MAIL_DIR}
fi

#開始備份網站目錄,備份過程同上
if [ -f ${BACKUP_DIR}/${WEBSITE_PREFIX}${DATE}.tar.gz ]; then
echo `date +%Y-%m-%d`'s webebsite backup file is existing
else
tar -czvf ${BACKUP_DIR}/${WEBSITE_PREFIX}${DATE}.tar.gz ${SYSTEM_DIR}/${WEBSITE_DIR}
fi

#開始備份資料庫目錄,備份過程同上
if [ -f ${BACKUP_DIR}/${DATABASE_PREFIX}${DATE}.tar.gz ]; then
echo `date +%Y-%m-%d`'s database backup file is existing
else
tar -czvf ${BACKUP_DIR}/${DATABASE_PREFIX}${DATE}.tar.gz ${SYSTEM_DIR}/${DATABASE_DIR}
fi

#開始把備份文件傳輸到另一台伺服器上
ftp -i -n $FTP_SERV <<AUTO_FTP
user $FTP_USER $FTP_PASS
passive
binary
put ${BACKUP_DIR}/${MAIL_PREFIX}${DATE}.tar.gz ${MAIL_PREFIX}${DATE}.tar.gz
put ${BACKUP_DIR}/${WEBSITE_PREFIX}${DATE}.tar.gz ${WEBSITE_PREFIX}${DATE}.tar.gz
put ${BACKUP_DIR}/${DATABASE_PREFIX}${DATE}.tar.gz ${DATABASE_PREFIX}${DATE}.tar.gz
AUTO_FTP

別忘了,還有最後一步,就是在crontab里加上個任務,這樣你就不用每次備份都一步步地敲那些瑣碎的命令了。

我的網站,希望大家多多交流

===================================
linux下:

MySQL :: Linux 下自動備份資料庫的 shell 腳本
Linux 伺服器上的程序每天都在更新 MySQL 資料庫,於是就想起寫一個 shell 腳本,結合 crontab,定時備份資料庫。其實非常簡單,主要就是使用 MySQL 自帶的 mysqlmp 命令。

腳本內容如下:
#!/bin/sh
# File: /home/mysql/backup.sh
# Database info
DB_NAME="test"
DB_USER="username"
DB_PASS="password"

# Others vars
BIN_DIR="/usr/local/mysql/bin"
BCK_DIR="/home/mysql/backup"
DATE=`date +%F`

# TODO
$BIN_DIR/mysqlmp --opt -u$DB_USER -p$DB_PASS $DB_NAME | gzip > $BCK_DIR/db_$DATE.gz

然後使用將此腳本加到 /etc/crontab 定時任務中:

01 5 * * 0 mysql /home/mysql/backup.sh

好了,每周日凌晨 5:01 系統就會自動運行 backup.sh 文件備份 MySQL 資料庫了。

/home/www/inc/back

⑶ linux中怎麼用ftp做自動備份

#!/bin/bash

#設置日誌文件,前提建好了/backup/log目錄

LogFile=/backup/log/`date +"%Y-%m"`.log

#備份源目錄

SourceDir=/cvs

#備份目標

BakDir=/backup

#保存20天過期自動刪除

RetainDay=20

#備份的內容可以寫進project.lst,如cvs目錄下有a,b,c三個目錄,project.lst填寫多少就備份多少,下面是備份的

#具體腳本,其核心是tar打包,並把重要的內容記錄到日誌文件里

⑷ Linux裡面系統如何備份

對於備份和恢復來說,Linux提供了諸如tar、cpio、 mp等工具來實現。
下面是一個簡單的使用該工具進行數據備份的例子:
tar czvf - /root/code > /tmp/code_bak.tgz (將/root/code目錄下的所有程序文件打包備份到/tmp/code_bak.tgz)
tar xzvf /tmp/code_bak.tgz /root/code (將備份的目錄文件恢復到指定目錄)

⑸ 如何自動備份linux

清單 1: arc 的 shell 腳本
#!/bin/sh
tar czvf $1.$(date +%Y%m%d-%H%M%S).tgz $1
exit $?

arc 腳本接受單個文件或目錄名作為參數,創建壓縮的歸檔文件,並將當前日期嵌入到生成的歸檔文件名中。例如,如果存在一個名為 beoserver 的目錄,那麼可以調用 arc 腳本並將 beoserver 目錄名傳遞給該腳本來創建壓縮的歸檔文件,比如 beoserver.20040321-014844.tgz。
使用命令 date 嵌入日期和時間戳有助於組織歸檔文件。日期格式是年、月、日、小時、分鍾和秒 —— 但是秒欄位的 使用可能有點多餘。查閱 date 命令的手冊(man date)可以了解該命令的其他選項。而且在清單 1 中,選項 -v (verbose) 被傳遞給 tar。該選項指示 tar 顯示所有正在歸檔的文件。如果希望備份過程靜默進行,那麼請去除選項 -v。
清單 2:將 beoserver 目錄歸檔
$ ls
arc beoserver
$ ./arc beoserver
beoserver/
beoserver/bookl.dat
beoserver/beoserver_ab_off
beoserver/beoserver_ab_on
$ ls
arc beoserver beoserver.20040321-014844.tgz

⑹ linux mysql 怎麼自動備份

Linux下可以利用crontab系統每天定時備份MySQL資料庫,以下是詳細步驟:
1、創建保存備份文件的路徑/mysqldata
#mkdir /mysqldata
2、創建/usr/sbin/bakmysql文件
#vi /usr/sbin/bakmysql
輸入
rq=` date +%Y%m%d `
tar zcvf /mysqldata/mysql$rq.tar.gz /var/lib/mysql

或者寫成
rq=` date +%Y%m%d `
mysqlmp –all-databases -u root -p980405 > /mysqldata/mysql$rq.tar.gz
/var/lib/mysql是你資料庫文件的目錄,部分用戶是/usr/local/mysql/data,每個人可能不同
/mysqldata/表示保存備份文件的目錄,這個每個人也可以根據自己的要求來做。

⑺ linux 每日自動備份文件的腳本

1、比如每天產生一個/data/access.log這樣的文件,我們每天備份到backup目錄的access_2011-01-12.log.gz這樣的文件。
2、增加計劃任務
export
EDITOR=vi
crontab
-e
0
0
*
*
*
/data/bak.sh;
3、bak.sh文件內容如下:
cat
/data/bak.sh
#!/bin/bash
logs_dir=/data
bak_dir=/data/backup
bak_file=access_`date
+%Y%m%d`.log
#
tar
everyday
#echo
"begining
of
tar"
tar
zcf
$bak_dir/$bak_file.gz
$logs_dir/access.log
#
clear
bak_file
#echo
"clearing
file.log"
find
$bak_dir
-mtime
+7
-exec
rm
-rf
{}
\;
#end
求採納為滿意回答。

⑻ Linux自動遠程備份一個文件夾所有文件至一台伺服器上的配置命令步驟

1.備份Linux系統window系統在運行狀態下,我們是無法將文件拷貝出來的,那麼在Linux下呢?她的文件結構式一種樹型結構。而且在系統運行的時候我們可以進行打包所有系統文件。特別要說的在Linux的root賬戶具備系統上的任何操作,這也是為什麼要創建一個比較低級別的用戶許可權來防止系統誤操作導致系統崩潰的暈因了。下面看備份命令。#切換到rootsudosu#進入系統根目錄cd/#執行打包命令tarcvpzflinuxbackup.tgz--exclude=/proc--exclude=/lost+found--exclude=/linuxbackup.tgz--exclude=/mnt--exclude=/sys/命令解釋:tar:linux常用的打包程序cvpzf:式tar的參數,c-創建新文檔v-處理過程中輸出相關信息p-表示保持相同的許可權z-調用gzip來壓縮歸檔文件,與-x聯用時調用gzip完成解壓縮f-對普通文件操作linuxbackup.tgz:要打包成的文件名--exclude=/proc:排除/proc目錄,不打包這個目錄,後面也同理,記得排除自身打包的文件名/:表示打包linux根目錄所有文件,當然了排除的文件不包含在內整個過程理解起來意思就是,創建一個新的文件名linuxbackup.tgz壓縮文件,它保存式從排除了指定目錄後的文件,並且保存原有的許可權設置,這里必須記下你排除的目錄,恢復的時候需要手動創建。具體哪些目錄要排除在外,這個根覺不同的環境和工作需要進行選擇就是了。執行後等待一定時間就可以了,將這個linuxbackup.tgz拷貝到其他地方即可,備份完成了。重點指出:在打包過程中不要進行任何的操作,否則會修改某些文件,在備份完後tar會提示錯誤。恢復也是一樣。2.恢復Linux系統按照上面的方式備份完系統就可以使用該方法恢復你的備份文件了。如果你的系統崩潰了無法進入系統那麼你可以藉助引導CD或者其他引導系統進入,如果你可以進入系統,首先拷貝該備份文件到/目錄下,然後執行下面命令進行恢復系統:#提升到rootsudosu#進入根目錄cd/#解壓恢復系統tarxvpfzlinuxbackup.tgz-C/等執行完後,別急著重啟系統,要記得創建你在備份時候排除的目錄,手動創建,例如上面我們排除,我們需創建mkdirprocmdkirlost+foundmkdirmntmkdirsys這個時候你就可以重啟系統了。恢復完成了。

⑼ linux怎麼實現自動備份到雲盤

1、比如每天產生一個/data/access.log這樣的文件,我們每天備份到backup目錄的access_2011-01-12.log.gz這樣的文件。2、增加計劃任務
export EDITOR=vi
crontab -e
0 0 * * * /data/bak.sh;

3、bak.sh文件內容如下:
cat /data/bak.sh
#!/bin/bash

logs_dir=/data
bak_dir=/data/backup
bak_file=access_`date +%Y%m%d`.log
# tar everyday
#echo "begining of tar"
tar zcf $bak_dir/$bak_file.gz $logs_dir/access.log

# clear bak_file
#echo "clearing file.log"
find $bak_dir -mtime +7 -exec rm -rf {} \;

#end

⑽ linux下mysql自動備份資料庫與自動刪除臨時文件

一、每日23:00自動刪除臨時文件
首先查看一下crontab的任務列表:
crontab
-l
然後新建:
crontab
-e
添加一行:
00
03
*
*
*
rm
-rf
/www/cmstest/my120/public/scripts/jpgraph/*
保存退出。
重啟服務:
/etc/rc.d/init.d/crond
restart
二、每日24:00自動備份資料庫
利用系統crontab來定時執行備份文件,按日期對備份結果進行保存,達到備份的目的。
1、創建保存備份文件的路徑/mysqldata
#mkdir
/mysqldata
2、創建/usr/sbin/bakmysql文件
查找資料庫庫文件的路徑:
一般都是:/var/lib/mysql,或者,/usr/local/mysql/var
查找方法:
1、/usr/local/mysql/bin/mysql
-u
root
-p
進入資料庫
2、輸入:show
databases;
3、這是可以查看到所有的資料庫,然後
4、find
/
-name
db(你想查找的資料庫名)
之後:#vi
/usr/sbin/bakmysql
輸入
復制代碼
代碼如下:
rq=`
date
+%Y%m%d
`
tar
zcvf
/mysqldata/mysql$rq.tar.gz
/var/lib/mysql
3、修改文件屬性,使其可執行
#
chmod
+x
/usr/sbin/bakmysql
新建任務:
首先查看一下crontab的任務列表:
crontab
-l
然後新建:
crontab
-e
添加一行
00
04
*
*
*
/usr/sbin/bakmysql
表示每天24點鍾執行備份
4、重新啟動crond
#
/etc/rc.d/init.d/crond
restart
此後每天就可以在/mysqldata中看到類似下的文件了:mysql20040619.tar.gz。

閱讀全文

與linux文件自動備份相關的資料

熱點內容
給心理治療師pdf 瀏覽:218
robinhood加密交易條件 瀏覽:310
衛生間解壓方法 瀏覽:450
u盤如何做加密文件放照片 瀏覽:327
文件夾自己加了exe 瀏覽:256
小豬cms直播系統源碼 瀏覽:878
山東廣電雲伺服器 瀏覽:354
javadate與mysqldate 瀏覽:244
javalong比較 瀏覽:9
加密大師看不見加密文件 瀏覽:307
想做一個業余程序員 瀏覽:793
python選出行 瀏覽:249
cat命令windows 瀏覽:910
python算術游戲 瀏覽:532
常微分方程第二版pdf 瀏覽:23
phpJava學多久 瀏覽:722
php博客畢業設計 瀏覽:796
資料庫編程pdf 瀏覽:905
靜態文件伺服器騰訊雲 瀏覽:850
怎麼讓安卓手機運行蘋果軟體 瀏覽:118