導航:首頁 > 操作系統 > linux定時網頁

linux定時網頁

發布時間:2023-03-13 19:15:03

1. 如何設置linux系統的定時任務

linux怎麼設置定時任務呢,下面就讓我們來看看吧。
1、在終端窗口中輸入systemctlstatus命令查看atd服務是否開啟。
2、輸入date命令查看當前的時間。
3、輸入at+時間命令進行定時,at命令後面跟的是時分。
4、輸入mkdir/root/linux1609命令,回車列出要執行任務。
5、按Ctrl+V組合鍵終止當前的定時任務設置。
6、輸入at+l命令,回車查看當前已經存在的任務。
以上就是小編的分享,希望能幫助的大家。

2. Linux設置定時任務

《使用PSSH批量管理Linux》 一文中,已經學習了使用pssh批量管理linux的技巧。而很多時候,我們需要定時執行一些任務,或者需要定時執行一些批量任務。因此,本文就來研究一下linux設置定時任務的方法。

主要參考 Linux Crontab 定時任務 、 Linux定時任務Crontab命令詳解 和 Linux 定時任務詳解 。

cron(crond)是linux下用來周期性的執行某種任務或等待處理某些事件的一個守護進程。linux系統上面原本就有非常多的計劃性工作,因此這個系統服務是默認啟動的。crond進程每分鍾會定期檢查是否有要執行的任務,如果有要執行的任務,則自動執行該任務。另外,由於使用者自己也可以設置計劃任務,所以,linux系統也提供了使用者控制計劃任務的命令:crontab命令。

crontab命令是cron table的簡寫,它是cron的配置文件,也可以叫它作業列表,我們可以在以下文件夾內找到相關配置文件。

linux下的任務調度分為兩類,系統任務調度和用戶任務調度。

系統任務調度:系統周期性所要執行的工作,比如寫緩存數據到硬碟、日誌清理等。 /etc/crontab 文件就是系統任務調度的配置文件。

用戶任務調度:用戶定期要執行的工作,比如用戶數據備份、定時郵件提醒等。用戶可以使用 crontab 工具來定製自己的計劃任務。所有用戶定義的crontab文件都被保存在 /var/spool/cron/crontabs/ 目錄中,其文件名與用戶名一致。

假設我們使用的是Ubuntu14.04.5 Server版,查看 /etc/crontab ,內容為:

第一行SHELL變數指定了系統要使用哪個shell;第二行PATH變數指定了系統執行 命令的路徑。
接下來的命令格式為:
m h dom mon dow user command
英文全拼為:
minute hour day month week user commond

注意, /var/spool/cron 目錄中的用戶調度任務,沒有user一項,因為文件名已經代表了user。

在以上各個欄位中,還可以使用以下特殊字元:

crontab命令格式為:
crontab [-u username] [file] [ -e | -l | -r ]

設置定時任務和時間緊密相關,如果伺服器的時區時間設置和本地不同,就不能保證計劃任務的正確執行。所以使用crontab的第一步,是調節好伺服器的時間。

下面參考 Ubuntu 16.04將系統時間寫入到硬體時間BIOS ,對伺服器時間進行調節。

時間是有時區的,無論硬體時間還是操作系統時間。hwclock的時區在/etc/default/rcS文件中設置,裡面有一個參數UTC,默認值為yes,表示使用UTC時區,如果設置為no,那表示使用osclock的時區。建議hwclock與osclock設置相同的時區,也就是no。

1、查看伺服器硬體時間
sudo hwclock -r ,看到的時間格式為: Wed 23 May 2018 11:02:17 AM HKT -0.031663 seconds

2、查看伺服器系統時間
date ,看到的時間格式為: Wed May 23 11:02:41 HKT 2018

3、設置hwclock和osclock時區相同
sudo vim /etc/default/rcS ,找到:

修改為:

4、將系統時間寫入硬體時間
sudo hwclock -w

5、修改系統時區
osclock的時區配置文件為/etc/timezone,不建議直接修改配置文件。

如果你想修改為CST時間,那麼執行 sudo tzselect 命令時,選擇Asia->China->Beijing Time即可,這時會提示使用Asia/Shanghai時區。(ubuntu和centos通用)

6、設置即刻生效
執行 date ,發現時區沒有變化,依然是HKT。

sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
sudo ntpdate time.windows.com

如果執行ntpdate報錯:ntpdate[18409]: no server suitable for synchronization found ,那麼就換一個時間同步工具。
sudo apt-get install rdate
sudo rdate -s time-b.nist.gov

再次執行 date ,發現時區已經變成了CST。

7、硬體時間同步
sudo hwclock -r ,發現硬體時間落後。
sudo hwclock -w ,再次把系統時間寫入硬體時間,同步完成。

實例1:每分鍾、每小時、每天、每周、每月、每年執行

實例2:每小時的第3和第15分鍾執行
3,15 * * * * myCommand

實例3:在上午8點到11點的第3和第15分鍾執行
3,15 8-11 * * * myCommand

實例4:每隔兩天的上午8點到11點的第3和第15分鍾執行
3,15 8-11 */2 * * myCommand

實例5:每周一上午8點到11點的第3和第15分鍾執行
3,15 8-11 * * 1 myCommand

實例6:每晚的21:30重啟smb
30 21 * * * /etc/init.d/smb restart

實例7:每月1、10、22日的4 : 45重啟smb
45 4 1,10,22 * * /etc/init.d/smb restart

實例8:每周六、周日的1 : 10重啟smb
10 1 * * 6,0 /etc/init.d/smb restart

實例9:每天18 : 00至23 : 00之間每隔30分鍾重啟smb
0,30 18-23 * * * /etc/init.d/smb restart

實例10:每星期六的晚上11 : 00 pm重啟smb
0 23 * * 6 /etc/init.d/smb restart

實例11:每一小時重啟smb
0 * * * * /etc/init.d/smb restart

實例12:晚上11點到早上7點之間,每隔一小時重啟smb
0 23-7/1 * * * /etc/init.d/smb restart

實例13:每月的4號與每周一到周三的11點重啟smb
0 11 4 * mon-wed /etc/init.d/smb restart

實例14:一月一號的4點重啟smb
0 4 1 jan * /etc/init.d/smb restart

實例15:每小時執行/etc/cron.hourly目錄內的腳本
01 * * * * root run-parts /etc/cron.hourly
run-parts這個參數了,如果去掉這個參數的話,後面就可以寫要運行的某個腳本名,而不是目錄名了。

目標:每分鍾查看一下ganglia的狀態,並保存到/tmp/log/ganglia目錄。

1、創建/tmp/log/ganglia目錄
sudo mkdir -p /tmp/log/ganglia

sudo chmod a+w /tmp/log/ganglia

2、編輯crontab
crontab -e ,選擇編輯器為vim

3、在crontab文件中添加一行

4、查看crontab任務
crontab -l ,看到任務已經添加成功。

5、等待了五分鍾,發現/tmp/log/ganglia目錄下啥也沒有。
sudo service cron status ,狀態正常。
sudo /etc/init.d/cron restart ,重啟cron試試。
又等待了五分鍾,發現/tmp/log/ganglia目錄下依然空空。

莫非是因為pssh沒有使用絕對路徑? whereis pssh ,找到pssh路徑為 /usr/lib/pssh ,修改crontab為:

然而,並沒有用。
還是查看下crontab日誌吧!

以下主要參考 Ubuntu下用crontab 部署定時任務 。

1、編輯50-default.conf
sudo vim /etc/rsyslog.d/50-default.conf

2、把cron前的井號去掉,也就是修改為:

3、重啟rsyslog服務
sudo service rsyslog restart

4、重啟crontab服務
sudo service cron restart

5、查看crontab日誌
less /var/log/cron.log

果然發現了問題:

也就是說,命令確實按時執行了,只不過沒有執行完,被百分號截斷了,導致log文件沒有正常生成!

修改crontab為:

終於,log文件成功生成,nice!但是,文件內容是空的!因為, /usr/lib/pssh 是一個目錄,不是pssh命令!真正的pssh命令是parallel-ssh,找到它的位置為 /usr/bin/parallel-ssh ,修改crontab:

至此,問題圓滿解決。
實際使用的時候,一天獲取一次ganglia的狀態就夠了,所以crontab改成:

以上,每天執行一次定時任務,抓取ganglia的運行狀態保存到日誌文件中。緊接著,我們的目標是使用腳本檢查當天的日誌文件,如果發現ganglia運行異常,則產生一個錯誤日誌。

1、假設日誌文件ganglia-20180524.log的內容為:

2、參考 grep命令最經常使用的功能總結 ,編寫腳本checkganglia.sh

3、執行
chmod a+x checkganglia.sh

./checkganglia.sh

如果所有客戶機的ganglia運行正常,就會輸出All services are runing!。如果有的客戶機ganglia進程不存在,則會在/tmp/log/ganglia/目錄下生成當天的錯誤日誌。

4、設置定時運行
因為日誌的檢查工作要在日誌生成之後,所以時間上延後十分鍾。

上面的腳本,還有很多要改進的地方。比如有的客戶機宕機了,上面的腳本檢查不出來。比如有的客戶機ganglia服務沒有啟動,那麼具體是哪幾台?針對這兩個問題,下面進行改進。假設已經知道客戶機的數量為10。

參考 csplit命令 ,checkganglia.sh腳本修改為:

以上腳本,實現了當客戶機數量不為10的時候,進行報錯;當客戶機ganglia服務沒有啟動時,進行報錯,並且篩選出所有沒有啟動ganglia的客戶機。

本文中,我們先學習了crontab的基礎知識和基本用法。然後通過監控ganglia這一個應用場景來具體學習crontab的詳細使用方法,包括查看cron日誌的方法,crontab中命令轉義的方法,定時執行腳本的方法,以及審閱日誌腳本的編寫和進階。

至此,還不夠完美,因為我們需要每天登錄管理機查看有沒有錯誤日誌。下一篇 Linux設置郵件提醒 中,我們將會研究linux設置郵件提醒的方法。審閱完日誌後,如果腳本能夠給我們發送一封郵件,告知我們審閱的結果,那麼我們就不必再每天查看錯誤日誌。

3. 如何在linux下實現自動刷新網頁的腳本

樓主,你這個問題似乎有點怪異。跨站腳本調用很累的。而且這種代碼的講解並不多。

建議你這個 ASP 網頁嵌入一個 Linux 機器上面的網頁。這個 Linux 機器跑 apache 運行 PHP 網頁後調用這個腳本。
不過這樣操作會很不安全。因為 Linux 端執行你這個命令也需要許可權的。瀏覽者會看到這個訪問頁面,很容易讓人猜到關鍵數據的位置。
其次也可以用 ASP 代碼的 http 訪問相關函數來直接訪問 Linux 機器的網頁介面,這個安全一些因為可以設置瀏覽者看不到的密碼。

其次還可以用一些其他的手段,在 ASP 所在的機器上運行某個程序來自動連接到 Linux 主機的遠程式控制制埠運行命令,或者 ASP 直接編寫出訪問 Linux 控制端的代碼。但這個就要找專業人士了。
------------------------
哦,明白你的意思了。

這個是小菜一碟的。不過 MySQL 一般禁止 root 遠程訪問的,這樣可以保證一定的安全。你在本地可以直接用客戶端程序訪問 mySQL 伺服器上的資料庫的。ASP 代碼直接運行本地程序直接訪問遠程資料庫即可。

不過似乎 mysql 這個命令沒有遠程訪問的功能(至少我沒找到,有一次著急導入數據就是沒招特郁悶……)
用第三方的軟體吧。

如果還是選擇運行 Linux 上的腳本,那就需要 Linux 再開一個可以運行命令的服務了。

閱讀全文

與linux定時網頁相關的資料

熱點內容
加密狗插上去了怎麼辦 瀏覽:622
錘子m1怎麼把文件夾重置 瀏覽:213
APP的數據會存在哪裡 瀏覽:64
一支輕快又解壓的舞 瀏覽:586
80x86編程手冊 瀏覽:765
android機制使用 瀏覽:361
國外太空探索網站源碼 瀏覽:643
dotaimba命令大全 瀏覽:13
手解剖pdf 瀏覽:733
單片機無法燒寫程序 瀏覽:413
pline命令 瀏覽:111
760貼片機編程視頻 瀏覽:333
歐姆龍plc編程第36講 瀏覽:915
我的世界如何將一個伺服器弄崩 瀏覽:8
php網站訪問量代碼 瀏覽:431
怠速壓縮機咔咔響 瀏覽:176
怎麼才能修改APP中的數據 瀏覽:688
哪裡有搶單的app 瀏覽:462
演算法概率題 瀏覽:465
長方形拉伸的命令 瀏覽:279