⑴ linux如何做類似計劃任務的文件轉存及文件刪除
#!/bin/bash
ls
|
grep
full
|
grep
"`date
+%Y`_`date
+%U`"
>
tmp.txt
ls
|
grep
append
|
grep
"`date
+%Y`_`date
+%U`"
>>
tmp.txt
cat
tmp.txt
for
file
in
`cat
tmp.txt`
do
scp
$file
135.251.238.214:/local/test_backup
done
ls
|
grep
full
|
grep
-v
"`date
+%Y`_`date
+%U`"
>
tmp2.txt
ls
|
grep
append
|
grep
-v
"`date
+%Y`_`date
+%U`"
>>
tmp2.txt
cat
tmp2.txt
for
file
in
`cat
tmp2.txt`
do
rm
-rf
$file
done
rm
-rf
tmp.txt
rm
-rf
tmp2.txt
大概這樣不知道
可不可以
,scp需要注意把你的賬號設成ssh免驗證的那種。
⑵ linux是否會定期刪除文件夾下面超過30日的文件
1.刪除文件命令:
find 對應目錄 -mtime +天數 -name "文件名" -exec rm -rf {} \;
實例命令:
find /opt/soft/log/ -mtime +30 -name "*.log" -exec rm -rf {} \;
說明:
將/opt/soft/log/目錄下所有30天前帶".log"的文件刪除。具體參數說明如下:
find:linux的查找命令,用戶查找指定條件的文件;
/opt/soft/log/:想要進行清理的任意目錄;
-mtime:標准語句寫法;
+30:查找30天前的文件,這里用數字代表天數;
"*.log":希望查找的數據類型,"*.jpg"表示查找擴展名為jpg的所有文件,"*"表示查找所有文件,這個可以靈活運用,舉一反三;
-exec:固定寫法;
rm -rf:強制刪除文件,包括目錄;
{} \; :固定寫法,一對大括弧+空格+\+;
2.計劃任務:
若嫌每次手動執行語句太麻煩,可以將這小語句寫到一個可執行shell腳本文件中,再設置cron調度執行,那就可以讓系統自動去清理相關文件。
2.1創建shell:
touch /opt/soft/bin/auto-del-30-days-ago-log.sh
chmod +x auto-del-30-days-ago-log.sh
新建一個可執行文件auto-del-30-days-ago-log.sh,並分配可運行許可權
2.2編輯shell腳本:
vi auto-del-30-days-ago-log.sh
編輯auto-del-30-days-ago-log.sh文件如下:
#!/bin/sh
find /opt/soft/log/ -mtime +30 -name "*.log" -exec rm -rf {} \;
ok,保存退出(:wq)。
2.3計劃任務:
#crontab -e
將auto-del-30-days-ago-log.sh執行腳本加入到系統計劃任務,到點自動執行
輸入:
10 0 * * * /opt/soft/log/auto-del-7-days-ago-log.sh >/dev/null 2>&1
這里的設置是每天凌晨0點10分執行auto-del-7-days-ago-log.sh文件進行數據清理任務了。
⑶ linux計劃任務管理
什麼是計劃任務,計劃任務類似於我們平時生活中的鬧鍾。
在Linux系統的計劃任務服務crond可以滿足周期性執行任務的需求。
crond進程每分鍾會處理一次計劃任務, 計劃任務主要是做一些周期性的任務目前最主要的用途是定時備份數據
Schele one-time tasks with at. 一次性調度執行 at
Schele recurring jobs with cron. 循環調度執行 cron
Schele recurring system jobs. 所有計劃任務執行中的輸出都會以郵件的方式發送給指定用戶, 除非重定向
// 循環調度執行cron 進程每分鍾會處理一次計劃任務
[root@wangqing ~] # systemctl status crond
[root@wangqing ~] # ps aux |grep crond
root 1201 0.0 0.0 126264 1640 ? Ss 11 : 15 0 : 00 /usr/sbin/crond -n
計劃任務分為以下兩種情況:
系統級別的定時任務:
清理系統緩存
臨時文件清理
系統信息採集
日誌文件切割
用戶級別的定時任務:
定時同步互聯網時間
定時備份系統配置文件
定時備份資料庫文件
文件 說明 /etc/crontab / /crontab配置文件 /etc/cron.deny / /該文件中所列用戶不允許使用crontab命令 /var/spool/cron/ * // 所有用戶定時文件都存放此目錄,文件以用戶名命名 /var/log/cron / /定時任務執行後的日誌文件,可用來回溯
crond任務管理
參數 含義 指定示例
[root@wangqing ~] # crontab --help -e 編輯crontab文件內容 crontab -e-l 查看crontab文件內容 crontab -l
-r 刪除crontab文件內容 crontab -r
-u 管理其他用戶的計劃任務 crontab -u wangqing -l
注意: crontab {-l -e}實際上就是在操作/var/spool/cron/username
//如何進行計劃任務的備份?
crond時間含義
# Example of job definition:# .---------------- minute (0 - 59) //分鍾 # | .------------- hour (0 - 23) //小時 # | | .---------- day of month (1 - 31) //日期 # | | | .------- month (1 - 12) OR jan,feb,mar,apr //月份 # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat //星期 # | | | | |# * * * * * command to be executed
// * 表示任意的(分、時、日、月、周)時間都執行// - 表示一個時間范圍段, 如5-7點// , 表示分隔時段, 如6,0,4表示周六、日、四// */n 表示每隔n單位時間, 如*/10 每10分鍾
crond編寫示例
00 02 * * * command
00 02 1 * * command
00 02 14 2 * command
00 02 * * 7 command
00 02 * 6 5 command
00 02 14 * 7 command
00 02 14 2 7 command
00 02 * * * command* 02 * * * command* * * * * command* * 14 2 * command*/5 * * * * command
00 02 * 1,5,8 * command
00 02 1-8 * * command
crond書寫規范
//1.為計劃任務增加必要的注釋
[root@wangqing ~]# crontab -l
##time sync
* /5 * * * * /u sr/sbin/ntpdate time1.aliyun.com &> /dev/ null
//2.規范計劃任務執行腳本存放的路徑/scripts/
[root@wangqing ~]# crontab -l
##backup www to /backup 30 01 * * * /bin/ sh /scripts/www_backup.sh &> /dev/ null
//3.執行shell腳本任務前加/bin/sh, 腳本結尾加&>/dev/null//調試好後應屏蔽debug輸出信息,避免產生系統垃圾佔用過多inode, 如需輸出日誌, 可重定向至日誌文件
[root@wangqing ~]# crontab -l
####backup www to /backup 30 01 * * * /bin/ sh /scripts/www_backup.sh &> /tmp/ www_backup.log
[root@wangqing ~] # crontab -e
#每天凌晨切割nginx日誌 05 00 * * * /bin/bash -x /scripts/cut_nginx.sh &> /scripts/ log /nginx. log
#每天5點備份資料庫 00 05 * * * /bin/bash -x /scripts/mp_sql.sh &>/scripts/ log /mysql. log
//注意: 1. 我們所有的crond服務是運行的程序。而crontab命令用戶用來設置定時規則的命令。 2. crond服務是企業生產工作中常用的重要服務,at很少使用,可以忽略。 3. 幾乎每個伺服器都會用到crond服務。
建議: 將需要定期執行的任務寫入腳本中, 建立/scripts目錄統一存放腳本, 腳本中命令必須使用絕對路徑,手動執行腳本檢測輸出是否正常, 然後將腳本加入計劃任務測試, 測試後無問題將腳本輸出寫入對應的日誌文件中即可。
計劃任務添加步驟:
作業:
a. 00 13,20 * 1-5 * backup.sh
b. 0 13,20 1,5 * * backup.sh
c. * 13,20 * * 1-5 backup.sh
d. 00 13,20 * * 1-5 backup.sh
說明以上答案每一行是什麼含義
2.新建/scripts/httpd.sh文件,並讓/scripts/httpd.sh腳本在每天的00:10分執行
3.新建/backup目錄,每周一下午5:50將/backup目錄下的所有文件打包成 backup.tar.gz
4.寫一個定時任務,每天0點5分把/var/log/nginx下7天前的文件轉移到/backup/2018_xx_xx的目錄中
5.系統腳本/scripts/which.sh,如何定時每隔7分鍾執行一次?
6.如何不小心刪除了/var/spool/cron/root文件,該如何恢復。
/p3.toutiaoimg.com/origin/tos-cn-i-qvj2lq49k0/","uri":"","width":323,"height":27,"darkImgUrl":"https://p3.toutiaoimg.com/origin/tos-cn-i-qvj2lq49k0/","darkImgUri":"","formulaImgStatus":"succeed"}" class="syl-plugin-formula">
⑷ linux 自動刪除文件腳本
rm_/opt/scommnet/upload()
{
find / -type -f -mtime +2 -exec rm {} \;
}
然後把這個函數放入用戶的.bash_profile中去,就可以開機自動刪除2 天前創建或修改的文件了
如果你是root ,那麼你的.bash_profile文件就在根目錄下中,如果你是普通用戶,那麼這個文件,就在$HOME中
find命令在「/」下查找普通文件,修改時間在2日以內的文件,-exec是來執行命令,rm的,後面的{} \;是-exec執行命令時必須加上的東西
試下吧,祝你好運
⑸ linux下面如何用liveCD 取消任務計劃
1、物理機
接上光碟機,插入livecd光碟,從光碟機啟動進入編輯/etc/crontab
2、虛擬機
直接載入livecd的ISO,啟動liveCD系統進入去編輯/etc/crontab
⑹ linux 計劃任務自動清除緩存
cronjob?
crontab -e
然後加入:
min hr mon yr d_of_week sync; echo 3 > /proc/sys/vm/drop_caches
這里:
min: 分鍾,00-59
hr:小時,00-23
mon:月,1-12
yr:年份
d_of_week:星期幾,0-6
然後再存起來。
⑺ 如何定時刪除linux伺服器文件
肯定是用腳本命令去刪除了,比如crontab自動執行,或者用腳本觸發
方法很多,
你可以有針對性的,如
rm -rf
⑻ linux下怎麼來利用crontab實現計劃任務非常有用
1、編輯計劃任務
crontab -e
編輯計劃任務,其實就是編輯一個計劃任務的文件,一行一個計劃任務。
每行的格式如下:
# m h dom mon dow command
m:minute 分鍾 (0-59)h:hour 小時 (0-23)dom:日 (1-31)mon:month 月 (1-12)dow:周 (0-7,其中0和7都代表星期天)command:執行的命令
時間的最小單位是分鍾,為了測試出結果,我使用每分鍾將當前時間保存到/home/text.txt下來進行測試:
*/1 * * * * date > /home/text.txt
等待一分鍾,檢查下/home/text.txt文件,如果有看到時間就成功了。除了*號和/符號還有其它符號來設定時間:
符號含義*(星號)表示什麼時候都可以,(逗號)如果有多個時段,用逗號分開,例如我想每小時的30分和59分執行命令30,59 * * * * date > /home/text.txt-(減號)一個時間段內執行任務,例如每小時的3-10分執行命令3-10 * * * *date > /home/text.txt/(斜線)每隔多少時間就執行一次命令,例如上例*/1 * * * * date > /home/text.txt就是每隔1分鍾執行一下命令
2、查看任務列表
crontab -l
這個命令可以查看計劃任務列表,其實就是查看任務文件了。
3、刪除計劃任務
crontab -r
這個命令建議不要用,這個命令會刪除系統上的所有計劃任務,我曾在伺服器上誤刪除了一次,結果花了不少時間恢復。建議通過crontab -e編輯,直接刪除不需要的那一行,就可以了。
友情提示:
執行的命令中的路徑建議使用全路徑,這樣一定不會有問題。例如我上例就是直接使用/home/text.txt;
在ubuntu下,如果沒有選擇默認的編輯器,則會提示選擇編輯器,如下:
ubuntu計劃任務選擇編輯器
如果需要重新選擇編輯器,運行命令select-editor就可以了 。我習慣用vim這個編輯器。