A. 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
求採納為滿意回答。
B. 求一個windows下 每天自動備份腳本 .bat格式的
裝一個RARWIN
在桌面新建一個test.
bat文件
,右健編輯在裡面寫上以下內容:(橫線中的內容,不包括橫線哦)
-------------------------------------------
c:
cd
C:\Program
Files\WinRAR
rar
a
e:\test_%date:~0,4%%date:~5,2%%date:~8,2%.rar
d:\test.txt
-------------------------------------------------------------------
上面的意思即是將d:\test壓縮成e:\test.rar
下面是解壓的bat
-------------------------------------------
c:
cd
C:\Program
Files\WinRAR
rar
e
e:\test_%date:~0,4%%date:~5,2%%date:~8,2%.rar
e:\
-------------------------------------------------------------------
然後到控制面版計劃任務中設置該bat的自動執行時間就可以啦~~
希望能幫到你哦~
^^
C. 如何實現linux自動壓縮指定日誌
/bin/bash
# logs zip
dir=你的日誌路徑
log=日誌名稱
bak_dir=壓縮後的日誌存放位置
echo "###########開始備份###################"
tar -zcvf ${bak_dir}/bak_$(date "+%Y%m%d_%H%M").tar.gz ${dir}/$log
D. 請教linux定時執行資料庫備份腳本的問題
把以前寫的一個發你看看
腳本要求:
編寫shell腳本,每天凌晨1點備份td_oa庫,到mysql-back目錄,並將備份文件壓縮,壓縮名稱為備份的日期,只保留連續七天的備份文件
#!/bin/bash
/usr/local/mysql/bin/mysqlmp
-uroot
-p123456
td_oa
>
td_oa.sql
&>/dev/null
a=`/bin/date
+%Y-%m-%d`
#在這里加上時間,壓縮的時候加上時間,會失敗。
echo
$a
cd
/gxl
/bin/tar
-czf
$a.tar
/fjp/td_oa.sql
b="$a.tar"
cp
-p
$b
/root/fjp
for
c
in
`find
/root/fjp
-ctime
+7`
do
/bin/rm
-rf
$c
done
自己根據自己的要求修改!
E. 大家好,我想求一個自動備份文件夾的腳本,每天運行一次,保存最近2天的,刪除以前的,在線等!!謝謝了!
#!/bin/bash
BUNM=backup #保存備份文件的目錄名字
BDIR=/etc #要備份的文件夾路徑
FILE=`date '+%Y%m%d'`."$BUNM".tgz #創建要備份文件的文件名
find $BUNM -type f -mtime -2 -exec rm {} \; #刪除2天前在保存備份文件目錄里創建的文件
tar czvf $FILE $BDIR/ #開始備份
mv $FILE /$BUNM #到/backup備份目錄。#移動備份文件到指定備份目錄
F. 使用windows腳本編寫自動壓縮文件、刪除源文件的腳本
怎麼確定什麼才算「過去5天」?根據文件名?按創建日期?按修改日期?
另外需要歸檔的文件,是否分散在不同的路徑,不同的文件夾?
我這里強烈推薦使用 robo 把需要備份的文件拷貝出來,然後再人工執行壓縮,亦或者可以使用計劃任務執行壓縮任務
robo "C:Log" "R:RoboCopylog" /MOV /V /MinaGE:5 /R:10 /W:30 /if *.log
/MOT:分鍾 可以設定監視器,定時執行移動文件操作
/MOT:m :: 監視源;如果更改,在 m 分鍾時間內再次運行。
詳細的參數可以參見下面的命令
-------------------------------------------------------------------------------
ROBOCOPY :: Windows 的可靠文件復制
-------------------------------------------------------------------------------
開始時間: Mon Dec 06 08:51:32 2021
用法 :: ROBOCOPY source destination [file [file]...] [options]
源 :: 源目錄(驅動器:路徑或\伺服器共享路徑)。
目標 :: 目標目錄(驅動器:路徑或\伺服器共享路徑)。
文件 :: 要復制的文件(名稱/通配符: 默認為 "*.*")。
::
:: 復制選項:
::
/S :: 復制子目錄,但不復制空的子目錄。
/E :: 復制子目錄,包括空的子目錄。
/LEV:n :: 僅復制源目錄樹的前 n 層。
/Z :: 在可重新啟動模式下復制文件。
/B :: 在備份模式下復制文件。
/ZB :: 使用可重新啟動模式;如果拒絕訪問,請使用備份模式。
/EFSRAW :: 在 EFS RAW 模式下復制所有加密的文件。
/COPY:復制標記:: 要復制的文件內容(默認為 /COPY:DAT)。
(復制標記: D=數據,A=屬性,T=時間戳)。
(S=安全=NTFS ACL,O=所有者信息,U=審核信息)。
/DCOPY:T :: 復制目錄時間戳。
/SEC :: 復制具有安全性的文件(等同於 /COPY:DATS)。
/COPYALL :: 復制所有文件信息(等同於 /COPY:DATSOU)。
/NOCOPY :: 不復制任何文件信息(與 /PURGE 一起使用生效)。
/SECFIX :: 修復所有文件的文件安全性,即使是跳過的文件。
/TIMFIX :: 修復所有文件的文件時間,即使是跳過的文件。
/PURGE :: 刪除源中不再存在的目標文件/目錄。
/MIR :: 鏡像目錄樹(等同於 /E 和 /PURGE)。
/MOV :: 移動文件(復制後從源中刪除)。
/MOVE :: 移動文件和目錄(復制後從源中刪除)。
/A+:[RASHCNET] :: 將給定的屬性添加到復制文件。
/A-:[RASHCNET] :: 從復制文件中刪除給定的屬性。
/CREATE :: 僅創建目錄樹和長度為零的文件。
/FAT :: 僅使用 8.3 FAT 文件名創建目標文件。
/256 :: 關閉超長路徑(> 256 字元)支持。
/MON:n :: 監視源;發現多於 n 個更改時再次運行。
/MOT:m :: 監視源;如果更改,在 m 分鍾時間內再次運行。
/RH:hhmm-hhmm :: 運行小時數 - 可以啟動新副本的時間。
/PF :: 以每個文件(而不是每個步驟)為基礎檢查運行小時數。
/IPG:n :: 程序包間的間距(ms),以釋放低速線路上的帶寬。
/SL :: 對照目標復制符號鏈接。
/MT[:n] :: 使用 n 個線程進行多線程復制(默認值為 8)。
n 必須至少為 1,但不得大於 128。
該選項與 /IPG 和 /EFSRAW 選項不兼容。
使用 /LOG 選項重定向輸出以便獲得最佳性能。
::
:: 文件選擇選項:
::
/A :: 僅復制具有存檔屬性集的文件。
/M :: 僅復制具有存檔屬性的文件並重置存檔屬性。
/IA:[RASHCNETO] :: 僅包含具有任意給定屬性集的文件。
/XA:[RASHCNETO] :: 排除具有任意給定屬性集的文件。
/XF 文件[文件]... :: 排除與給定名稱/路徑/通配符匹配的文件。
/XD 目錄[目錄]... :: 排除與給定名稱/路徑匹配的目錄。
/XC :: 排除已更改的文件。
/XN :: 排除較新的文件。
/XO :: 排除較舊的文件。
/XX :: 排除多餘的文件和目錄。
/XL :: 排除孤立的文件和目錄。
/IS :: 包含相同文件。
/IT :: 包含已調整的文件。
/MAX:n :: 最大的文件大小 - 排除大於 n 位元組的文件。
/MIN:n :: 最小的文件大小 - 排除小於 n 位元組的文件。
/MAXAGE:n :: 最長的文件存在時間 - 排除早於 n 天/日期的文件。
/MINAGE:n :: 最短的文件存在時間 - 排除晚於 n 天/日期的文件。
/MAXLAD:n :: 最大的最後訪問日期 - 排除自 n 以來未使用的文件。
/MINLAD:n :: 最小的最後訪問日期 - 排除自 n 以來使用的文件。
(If n < 1900 then n = n days, else n = YYYYMMDD date)。
/XJ :: 排除接合點。(默認情況下通常包括)。
/FFT :: 假設 FAT 文件時間(2 秒粒度)。
/DST :: 彌補 1 小時的 DST 時間差。
/XJD :: 排除目錄的接合點。
/XJF :: 排除文件的接合點。
::
:: 重試選項:
::
/R:n :: 失敗副本的重試次數: 默認為 1 百萬。
/W:n :: 兩次重試間的等待時間: 默認為 30 秒。
/REG :: 將注冊表中的 /R:n 和 /W:n 保存為默認設置。
/TBD :: 等待定義共享名稱(重試錯誤 67)。
::
:: 日誌記錄選項:
::
/L :: 僅列出 - 不復制、添加時間戳或刪除任何文件。
/X :: 報告所有多餘的文件,而不只是選中的文件。
/V :: 生成詳細輸出,同時顯示跳過的文件。
/TS :: 在輸出中包含源文件的時間戳。
/FP :: 在輸出中包含文件的完整路徑名稱。
/BYTES :: 以位元組列印大小。
/NS :: 無大小 - 不記錄文件大小。
/NC :: 無類別 - 不記錄文件類別。
/NFL :: 無文件列表 - 不記錄文件名。
/NDL :: 無目錄列表 - 不記錄目錄名稱。
/NP :: 無進度 - 不顯示已復制的百分比。
/ETA :: 顯示復制文件的預期到達時間。
/LOG:文件 :: 將狀態輸出到日誌文件(覆蓋現有日誌)。
/LOG+:文件 :: 將狀態輸出到日誌文件(附加到現有日誌中)。
/UNILOG:文件 :: 以 UNICODE 方式將狀態輸出到日誌文件(覆蓋現有日誌)。
/UNILOG+:文件 :: 以 UNICODE 方式將狀態輸出到日誌文件(附加到現有日誌中)。
/TEE :: 輸出到控制台窗口和日誌文件。
/NJH :: 沒有作業標頭。
/NJS :: 沒有作業摘要。
/UNICODE :: 以 UNICODE 方式輸出狀態。
::
:: 作業選項 :
::
/JOB:作業名稱 :: 從命名的作業文件中提取參數。
/SAVE:作業名稱 :: 將參數保存到命名的作業文件
/QUIT :: 處理命令行後退出(以查看參數)。
/NOSD :: 未指定源目錄。
/NODD :: 未指定目標目錄。
/IF :: 包含以下文件。
G. 高分求教!windows , linux 操作系統里 分別如何實現日誌的定時備份!!!
給你講一下Linux下的
先創建個備份腳本的文件保存為backup.sh,然後讓corn在指定時間運行就可以了
備份腳本內容:
cp -r 日誌目錄 要備份的目錄
tar -zcvf bak$(date +%Y%m%d).tar.gz 要備份的目錄 //將數據所在文件夾bak打包
呵呵,很簡單,復制、打包就ok了
然後就是計劃任務了
修改crontab內容
#crontab -e
* * * * * /腳本所在完整路徑/backup.sh
如:22 11 1 * * /home/backup.sh 就是每月的1號11點22分執行home下的backup.sh腳本
前面五個欄位分別表示分鍾、小時、日、月、星期幾(0-6)後面的為腳本所在目錄
3,重新啟動crond服務
#service crond restart
如果沒有安裝crond服務就先裝上服務再說,用service crond status可以查看該服務狀態
windows的也是差不多,也是復制打包的,然後就計劃任務就ok了
H. 編寫一個shell腳本每天16:30備份mysql數據並壓縮打包(打包文件按照當天日期命名)放到/root/data下
#!/bin/bash
date=$(date-d'+0days''+%Y-%m-%d')#聲明一個變數,並賦值當天日期
cd/root/data#進入目錄
mkdir$date#創建目錄
mysqlmp-uusername-ppassworddb_name>$date"db_name.sql"#資料庫備份,修改用戶名密碼,還有要備份資料庫
tar-zcf$date".tar.gz"$date#壓縮打包
rm-rf$date#刪除源數據
保存為bak.sh,每天16:30備份定時任務,沒有crontab命令:yum install vixie-cron
chmod +x /.../bak.sh
crontab -e
30 16 * * * /.../bak.sh
I. 編寫腳本實現以下功能;每天早上5點開始做備份
[root@haojiu ~]#cat /root/mylogbak.sh
#!/bin/bash
#scripts for dirbakup and upload to ftp server.
#author by haojiu
#create by
bakdir=mylog
date=`date +%F`
cd /var
tar zcf ${bakdir}_${date}.tar.gz ${bakdir}
sleep 1
ftp -n <<- EOF
open 192.168.142.129 #遠程ftp伺服器IP
user aaa bbb
put mylog_*.tar.gz
bye
EOF
rm -rf mylog_*.tar.gz #這步之前可以做一個判斷,判斷文件上傳成功再執行rm,留給各位發揮吧。
添加crontab:
crontab -l
00 05 * * * /bin/bash /root/mylogbak.sh #每天早上5點開始執行備份腳本
如果有什麼不懂的話可以去看看《Linux就該這么學》這本書,非常適合新手學習Linux。