1.crontab準備
1)安裝服務
sudo apt install cron
2)開通並開啟後台服務
sudo systemctl enable cron.service;sudo systemctl start cron.service
3)建立乙個crontab檔案
sudo vim ~/mycrontab
4)新增任務
#每分鐘週期性執行
* * * * * sudo ~/test.sh
5)將任務新增到cron服務模組中
crontab ~/mycrontab
2.編輯test.sh
1)新建test.sh
sudo vim test.sh
2)新增以下配置資訊
#!/bin/bash
#獲取系統當前時間
time=$(date "+%y-%m-%d %h:%m:%s")
echo "time:$time" >> /home/lim/measure/sysinfo.log
#ip的獲取
ip=`ifconfig| grep -a 1 'ens33'|grep 'inet'|awk -f ':' ''|awk ''`
echo "ip:$ip" >> /home/lim/measure/sysinfo.log
#獲取系統cpu使用率
sys_cpu=`top -n 1 |grep cpu | cut -d "," -f 1 | cut -d ":" -f 2 | awk ''`
echo "sys_cpu:$sys_cpu" >> /home/lim/measure/sysinfo.log
#獲取使用者cpu使用率
user_cpu=`top -n 1 |grep cpu | cut -d "," -f 2 | awk ''`
echo "user_cpu:$user_cpu" >> /home/lim/measure/sysinfo.log
#獲取磁碟使用率
disk_usage=`df -lh |grep /dev/sda1 |awk ''| tr -cd "[0-9]"`
disk_usage=`awk 'begin'`
echo "disk_usage:$disk_usage" >> /home/lim/measure/sysinfo.log
#獲取記憶體使用率
mem_total=`cat /proc/meminfo | grep memtotal | awk '' | tr -cd "[0-9]"`
mem_used=`cat /proc/meminfo | grep memfree | awk '' | tr -cd "[0-9]"`
mem_usage=`awk 'begin'`
echo "mem_usage:$mem_usage" >> /home/lim/measure/sysinfo.log
3)輸出資料格式
4)存在問題
1.直接以互動模式執行指令碼,可以在test.s**件中直接將echo的流重定向到檔案中。
2.以crontab呼叫的方式,沒法在指令碼中通過echo # >*.log完成流的重定向。
3.可以在crontab命令裡,嘗試流的重定向。 * * * * * ./test.sh >>test.log
crontab執行指令碼出錯
最近經常碰到關於crontab不能執行的,初步總結了有以下幾個原因 第一,指令碼的原因 大多數情況下,是我們的指令碼的問題,這種問題導致crontab不能執行的概率佔到70 以上。因為程式執行到某一步導致crontab終止執行,如,資料庫訪問出錯等。第二,執行環境問題,當我們碰到第一情況下,一般都可...
crontab計畫執行指令碼詳解
crontab是linux系統中在固定時間執行某乙個程式的工具,類似於windows系統中的任務計畫程式。一 安裝crontab yum install vixie cron 安裝 chkconfig crond on 設為開機啟動,安裝chkconfig yum installchkconfig ...
crontab防止指令碼週期內未執行完重複執行
八月 28,2015 no comments 個人體會 flock xn my.lock commond my.lock是乙個檔案,應該可以是任意檔案,可以新建乙個空檔案 當flock 獲得鎖後就會執行後面的 commond 測試過程 1 flock xn my.lock sleep 20 2 fl...