linuxat命令安裝
① linux中at命令
at命令
at:計劃任務,在特定的時間執行某項工作,在特定的時間執行一次。
格式:at+時間
例1:date //查看系統當前時間
at 時間 //系統計劃啟動任務時間
at> date >/root/1.txt //date:系統計劃啟動任務時間執行date命令;/root/1.txt執行命令寫入位
置和文件
ctrl+d退出 //退出at命令
例2:date //查看系統當前時間
at 時間 //系統計劃啟動任務時間
at> init 0 /root/2.txt //init 0:系統計劃啟動任務時間執行init 0(關機)命令;/root/2.txt執
行命令寫入位置和文件
例3:在固定時間內添加一個用戶(這時建立的用戶沒有密碼)
#at 12:00(時間) //at命令設定12:00執行一項操作
at>useradd aaa //在at命令里設定添加用戶aaa
ctrl+d //退出at命令
tail -f /etc/passwd //查看/etc/passwd文件後十行是否增加了一個用戶aaa
計劃任務結束後,查看任務是否寫入文件中,可以用cat或vi命令查看。
格式:cat(vi)+(路徑)文件名
例1:cat(vi) 1.txt
日 2月 6 09:21:28 CST 2005
計劃任務設定後,在沒有執行之前我們可以用atq命令來查看系統沒有執行工作任務。
格式:atq
例:atq
1 2005-02-06 09:23 a root
啟動計劃任務後,如果不想啟動設定好的計劃任務可以使用atrm命令刪除。
格式:atrm+任務號
例:atrm 1 //刪除計劃任務1
atq //查看計劃任務是否刪除
還可以進入到/var/spool/at目錄里把計劃任務刪除,計劃任務的文件都保存在該目錄里,可以用rm -f
文件名來刪除(以文件的形式刪除計劃任務,因為計劃任務是以文件形式保存在該目錄中)
例:#cd /var/spool/at //進入到/var/spool/at目錄中
ls //顯示目錄中所有文件
rm -f a0000a0119b0df //刪除計劃任務
在通常情況下,超級用戶都可以使用這個命令。對於其他用戶來說,能否可以使用就取決於兩個文
件:/etc/at.allow和/etc/at.deny。
當「用戶名」寫入/etc/at.deny中,用戶不能執行at命令(管理員限制用戶使用at命令)。
例:useradd text //新建一個text用戶
ls /etc/at.deny //查看at.deny文件內容
vi /etc/at.deny //對at.deny文件進行編輯
text //對at.deny文件進行編輯,寫入text用戶名,進行at命令限制,然後wq(保存退出)
cat /etc/at.deny //顯示at.deny文件內容
su - text //切換到text用戶
at 12:00 //text用戶執行at命令,如果被限制則出現下面的提示。
You do not have permission to use at.你不允許使用at這個命令
at.allow比at.deny優先順序高
at.allow文件中有的用戶可以執行at,沒有則不能。
linux操作系統在執行用戶是否可以執行at命令時,先看at.allow文件沒有才看at.deny文件。
注意:linux操作系統默認沒有/etc/at.allow文件。
例:ls /etc/at.allow //查看是否已經建立at.allow文件
touch /etc/at.allow //建立/etc/at.allow文件
vi /etc/at.allow //對at.allow文件進行編輯
text //對at.allow文件進行編輯,寫入text用戶名,該用戶名可以執行at命令,然後wq(保存退出)。
su - text //切換到text用戶
at 12:00 //text用戶執行at命令,若不出現上面所說的提示就可以進行at命令設定了。
at命令格式
at HH:MM YYYY-MM-DD //HH(小時):MM(分鍾) YYYY(年)-MM(月份)-DD(日)
例:at 4:00 2004-11-27
HH[am pm]+D(天) days //HH(小時)[am(上午)pm(下午)]+days(天)
例:4pm + 3days :3天以後下午4:00執行at命令設定的計劃任務。
② Linux安裝基本命令
Linux安裝基本命令大全
Linux常用命令,你還能記得多少呢?下文是我為大家准備的Linux常用命令,一起來看看吧!
安裝升級
查看軟體xxx安裝內容
dpkg -L xxx
查找軟體庫中的軟體
apt-cache search 正則表達式
或
aptitude search 軟體包
顯示系統安裝包的統計信息
apt-cache stats
顯示系統全部可用包的名稱
apt-cache pkgnames
顯示包的信息
apt-cache show k3b
查找文件屬於哪個包
dpkg -S filename
apt-file search filename
查看已經安裝了哪些包
dpkg -l
也可用
dpkg -l | less
翻頁查看
查詢軟體xxx依賴哪些包
apt-cache depends xxx
查詢軟體xxx被哪些包依賴
apt-cache rdepends xxx
增加一個光碟源
sudo apt-cdrom add
系統更新
sudo apt-get update (這一步更新包列表)
sudo apt-get dist-upgrade (這一步安裝所有可用更新)
或者
sudo apt-get upgrade (這一步安裝應用程序更新,不安裝新內核等)
清除所有已刪除包的殘餘配置文件
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
如果報如下錯誤,證明你的系統中沒有殘留配置文件了,無須擔心。
----------------------------------------------------------
dpkg: --purge needs at least one package name argument
Type dpkg --help for help about installing and deinstalling packages [*];
Use `dselect' or `aptitude' for user-friendly package management;
Type dpkg -Dhelp for a list of dpkg debug flag values;
Type dpkg --force-help for a list of forcing options;
Type dpkg-deb --help for help about manipulating *.deb files;
Type dpkg --license for right license and lack of warranty (GNU GPL) [*].
Options marked [*] proce a lot of output - pipe it through `less' or `more' !
----------------------------------------------------------
編譯時缺少h文件的自動處理
sudo auto-apt run ./configure
查看安裝軟體時下載包的臨時存放目錄
ls /var/cache/apt/archives
備份當前系統安裝的所有包的列表
dpkg --get-selections | grep -v deinstall > ~/somefile
從上面備份的安裝包的列表文件恢復所有包
dpkg --set-selections < ~/somefile
sudo dselect
清理舊版本的軟體緩存
sudo apt-get autoclean
清理所有軟體緩存
sudo apt-get clean
刪除系統不再使用的孤立軟體
sudo apt-get autoremove
如果使用
sudo apt-get autoremove --purge
的話會把這些孤立軟體的殘留配置文件也一並移除
查看包在伺服器上面的地址
apt-get -qq --print-uris download 軟體包名稱 | cut -d\' -f2
徹底刪除Gnome
sudo apt-get --purge remove liborbit2
徹底刪除KDE
sudo apt-get --purge remove libqt3-mt libqtcore4
一鍵安裝 LAMP 服務
sudo tasksel install lamp-server
刪除舊內核
sudo aptitude purge ~ilinux-image-.*\(\!\(`uname -r`\|generic-.*\)\)
導入ppa源的'key值
#W: GPG簽名驗證錯誤: http://ppa.launchpad.net jaunty Release: 由於沒有公鑰,下列簽名無法進行驗證: NO_PUBKEY 5126890CDCC7AFE0
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 5126890CDCC7AFE0 #5126890CDCC7AFE0替換為你需要導入的Key值
增加 add-apt-repository 命令
sudo apt-get install software-properties-common
增加一個ppa源
sudo add-apt-repository ppa:user/ppa-name
#使用 ppa 的地址替換 ppa:user/ppa-name
添加163鏡像源
sudo add-apt-repository "deb http://mirrors.163.com/ubuntu/ `lsb_release -cs` main restricted universe multiverse"
sudo add-apt-repository "deb http://mirrors.163.com/ubuntu/ `lsb_release -cs`-updates main restricted universe multiverse"
sudo add-apt-repository "deb http://mirrors.163.com/ubuntu/ `lsb_release -cs`-security main restricted universe multiverse"
系統升級
1 這里指的是版本間的升級,例如 9.04=>10.04。
2 使用該升級方式通常需要使用 backports 源。
sudo apt-get update
sudo apt-get install update-manager-core
sudo do-release-upgrade
系統
查看內核
uname -a
查看系統是32位還是64位
#查看long的位數,返回32或64
getconf LONG_BIT
#查看文件信息,包含32-bit就是32位,包含64-bit就是64位
file /sbin/init
或者使用
uname -m
查看Ubuntu版本
lsb_release -a
或 cat /etc/lsb-release
查看內核載入的模塊
lsmod
查看PCI設備
lspci
查看USB設備
lsusb
#加參數 -v 可以顯示USB設備的描述表(descriptors)
lsusb -v
查看網卡狀態
sudo apt-get install ethtool
sudo ethtool eth0
激活網卡的 Wake-on-LAN
sudo apt-get install wakeonlan
或 sudo ethtool -s eth0 wol g
查看CPU信息
cat /proc/cpuinfo
顯示當前硬體信息
sudo lshw
查看內存型號
sudo dmidecode -t memory
獲取CPU序列號或者主板序列號
#CPU ID
sudo dmidecode -t 4 | grep ID
#Serial Number
sudo dmidecode | grep Serial
#CPU
sudo dmidecode -t 4
#BIOS
sudo dmidecode -t 0
#主板:
sudo dmidecode -t 2
#OEM:
sudo dmidecode -t 11
顯示當前內存大小
free -m |grep "Mem" | awk '{print $2}'
查看硬碟溫度
sudo apt-get install hddtemp
sudo hddtemp /dev/sda
顯示系統運行時間
uptime
查看系統限制
ulimit -a
查看內核限制
ipcs -l
查看當前屏幕解析度
xrandr
硬碟
查看塊設備
lsblk
查看硬碟的分區
sudo fdisk -l
硬碟分區
#危險!小心操作。
sudo fdisk /dev/sda
硬碟格式化
#危險!將第一個分區格式化為 ext3 分區, mkfs.reiserfs mkfs.xfs mkfs.vfat
sudo mkfs.ext3 /dev/sda1
硬碟檢查
#危險!檢查第一個分區,請不要檢查已經掛載的分區,否則容易丟失和損壞數據
sudo fsck /dev/sda1
硬碟壞道檢測
sudo badblocks -s -v -c 32 /dev/sdb
#得到壞的塊後,使用分區工具隔離壞道。
分區掛載
sudo mount -t 文件系統類型 設備路經 訪問路經
#常用文件類型如下: iso9660 光碟機文件系統, vfat fat/fat32分區, ntfs ntfs分區, smbfs windows網路共享目錄, reiserfs、ext3、xfs Linux分區
#如果中文名無法顯示嘗試在最後增加 -o nls=utf8 或 -o iocharset=utf8
#如果需要掛載後,普通用戶也可以使用,在 -o 的參數後面增加 ,umask=022 如:-o nls=utf8,umask=022
分區卸載
sudo umount 目錄名或設備名
只讀掛載ntfs分區
sudo mount -t ntfs -o nls=utf8,umask=0 /dev/sdb1 /mnt/c
可寫掛載ntfs分區
sudo mount -t ntfs-3g -o locale=zh_CN.utf8,umask=0 /dev/sdb1 /mnt/c
掛載fat32分區
sudo mount -t vfat -o iocharset=utf8,umask=0 /dev/sda1 /mnt/c
掛載共享文件
sudo mount -t smbfs -o username=xxx,password=xxx,iocharset=utf8 //192.168.1.1/share /mnt/share
掛載ISO文件
sudo mount -t iso9660 -o loop,utf8 xxx.iso /mnt/iso
查看IDE硬碟信息
sudo hdparm -i /dev/sda
查看軟raid陣列信息
cat /proc/mdstat
參看硬raid陣列信息
dmesg |grep -i raid
cat /proc/scsi/scsi
查看SATA硬碟信息
sudo hdparm -I /dev/sda
或
sudo apt-get install blktool
sudo blktool /dev/sda id
查看硬碟剩餘空間
df
df --help 顯示幫助
查看目錄佔用空間
-hs 目錄名
閃盤沒法卸載
sync
fuser -km /media/閃盤卷標
使用文件來增加交換空間
#創建一個512M的交換文件 /swapfile
sudo dd if=/dev/zero of=/swapfile bs=1M count=512
sudo mkswap /swapfile
sudo swapon /swapfile
#sudo vim /etc/fstab #加到fstab文件中讓系統引導時自動啟動
/swapfile swap swap defaults 0 0
查看硬碟當前讀寫情況
# 首先安裝 sysstat 包
sudo apt-get install sysstat
#每2秒刷新一次
sudo iostat -x 2
測試硬碟的實際寫入速度
dd if=/dev/zero of=test bs=64k count=512 oflag=dsync
進程
查看當前的內存使用情況
free
連續監視內存使用情況
watch -d free
# 使用 Ctrl + c 退出
動態顯示進程執行情況
top
top指令運行時輸入H或?打開幫助窗口,輸入Q退出指令。
查看當前有哪些進程
ps -AFL
查看進程的啟動時間
ps -A -opid,stime,etime,args
查看目前登入用戶運行的程序
w
查看當前用戶程序實際內存佔用,並排序
ps -u $USER -o pid,rss,cmd --sort -rss
統計程序的內存耗用
ps -eo fname,rss|awk '{arr[$1]+=$2} END {for (i in arr) {print i,arr[i]}}'|sort -k2 -nr
按內存從大到小排列進程
ps -eo "%C : %p : %z : %a"|sort -k5 -nr
列出前十個最耗內存的進程
ps aux | sort -nk +4 | tail
按cpu利用率從大到小排列進程
ps -eo "%C : %p : %z : %a"|sort -nr
ps aux --sort -pcpu |head -n 20
查看當前進程樹
pstree
中止一個進程
kill 進程號(就是ps -A中的第一列的數字)
或者 killall 進程名
強制中止一個進程(在上面進程中止不成功的時候使用)
kill -9 進程號
或者 killall -9 進程名
圖形方式中止一個程序
xkill 出現骷髏標志的滑鼠,點擊需要中止的程序即可
查看進程打開的文件
lsof -p 進程的pid
顯示開啟文件abc.txt的進程
lsof abc.txt
顯示22埠現在運行什麼程序
lsof -i :22
顯示nsd進程現在打開的文件
lsof -c nsd
在後台運行程序,退出登錄後,並不結束程序
nohup 程序 &
#查看中間運行情況tail nohup
在後台運行互動式程序,退出登錄後,並不結束程序
sudo apt-get install screen
screen vim a.txt
#直接退出後使用
screen -ls # 2208pxs-0.ubuntu (Detached)
screen -r 1656 #恢復
#熱鍵,同時按下Ctrl和a鍵結束後,再按下功能鍵
C-a ? #顯示所有鍵綁定信息
C-a w #顯示所有窗口列表
C-a C-a #切換到之前顯示的窗口
C-a c #創建一個新的運行shell的窗口並切換到該窗口
C-a n #切換到下一個窗口
C-a p #切換到前一個窗口(與C-a n相對)
C-a 0..9 #切換到窗口0..9
C-a a #發送 C-a到當前窗口
C-a d #暫時斷開screen會話
C-a k #殺掉當前窗口
在後台運行互動式程序,退出登錄後,並不結束程序
tmux 進入後再運行其它命令
tmux attach #恢復
#熱鍵,同時按下Ctrl和b鍵結束後,再按下功能鍵
C-b c #創建一個新的運行shell的窗口並切換到該窗口
C-b n #切換到下一個窗口
C-b p #切換到前一個窗口(與C-a n相對)
C-b 0..9 #切換到窗口0..9
C-b d #暫時斷開會話
C-b & #殺掉當前窗口
詳細顯示程序的運行信息
strace -f -F -o outfile
增加系統最大打開文件個數
#ulimit -SHn
sudo vim /etc/security/limits.conf
文件尾追加
* hard nofile 4096
* soft nofile 4096
sudo vim /etc/pam.d/su
將 pam_limits.so 這一行注釋去掉
重起系統
清除僵屍進程
ps -eal | awk '{ if ($2 == "Z") {print $4}}' | xargs sudo kill -9
將大於120M內存的php-cgi都殺掉
ps -eo pid,fname,rss|grep php-cgi|grep -v grep|awk '{if($3>=120000) print $1}' | xargs sudo kill -9
Linux系統中如何限制用戶進程CPU佔用率
renice +10 `ps aux | awk '{ if ($3 > 0.8 && id -u $1 > 500) print $2}'`
#或直接編輯/etc/security/limits.conf文件。 ;
③ 在Linux環境下用at命令讓系統在當前時間5分鍾後將/root目錄下的install.log文
at now + 5 minutes cp /root/install.log /home/
at是命令
now是現在
+5 minutes就是加5分鍾後
cp 是復制的命令
寫是這樣寫,在shell中一般
at now + 5 minutes 直接按回車,寫入代碼
ctrl+d退出
④ Linux怎樣在某一特定時間執行命令(使用at」
簡介
at定時任務,指定一個時間執行一個任務,只能執行一次。需要安裝at服務,apt-get install at;
創建at任務
創建at任務方式有兩種,從文件輸入和從控制台輸入。以下分別用兩種方式創建1分鍾後將當前時間寫入 home/result 文件的命令
1、從文件輸入
附錄
1、at時間定義
at允許使用一套相當復雜的指定時間的方法。
1)能夠接受在當天的hh:mm(小時:分鍾)式的時間指定。假如該時間已過去,那麼就放在第二天執行。例如:04:00
2)能夠使用midnight(深夜),noon(中午),teatime(飲茶時間,一般是下午4點)等比較模糊的詞語來指定時間。
3)能夠採用12小時計時制,即在時間後面加上AM(上午)或PM(下午)來說明是上午還是下午。例如:12pm
4)能夠指定命令執行的具體日期,指定格式為month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年),指定的日期必須跟在指定時間的後面。例如:04:00 2009-03-1
5)能夠使用相對計時法。指定格式為:now + count time-units ,now就是當前時間,time-units是時間單位,這里能夠是minutes(分鍾)、hours(小時)、days(天)、weeks(星期)。count是時間的數量,幾天,幾小時。例如:now + 5 minutes 04pm + 3 days
6)能夠直接使用today(今天)、tomorrow(明天)來指定完成命令的時間。
⑤ 在Linux里使用at命令,提示未安裝,怎麼用sudo apt install安裝啊
sudoaptinstallat
⑥ 關於linux的 install命令
Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁碟操作、文件存取、目
錄操作、進程管理、文件許可權設定等。所以,在Linux系統上工作離不開使用系統提供的命
令。要想真正理解Linux系統,就必須從Linux命令學起,通過基礎的命令學習可以進一步理
解Linux系統。
不同Linux發行版的命令數量不一樣,但Linux發行版本最少的命令也有200多個。這里筆者
把比較重要和使用頻率最多的命令,按照它們在系統中的作用分成下面六個部分一一介紹。
◆ 安裝和登錄命令:login、shutdown、halt、reboot、install、mount、umount、chsh、
exit、last;
◆ 文件處理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;
◆ 系統管理相關命令:df、top、free、quota、at、lp、adser、groupadd、kill、
crontab;
◆ 網路操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、
finger、mail、 nslookup;
◆ 系統安全相關命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、
who;
◆ 其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。
本文以Mandrake Linux 9.1(Kenrel 2.4.21)為例,介紹Linux下的安裝和登錄命令。
login
1.作用
login的作用是登錄系統,它的使用許可權是所有用戶。
2.格式
login [name][-p ][-h 主機名稱]
3.主要參數
-p:通知login保持現在的環境參數。
-h:用來向遠程登錄的之間傳輸用戶名。
如果選擇用命令行模式登錄Linux的話,那麼看到的第一個Linux命令就是login:。
一般界面是這樣的:
Manddrake Linux release 9.1(Bamboo) for i586
kennel 2.4.21-0.13mdk on i686 / tty1
localhost login:root
password:
上面代碼中,第一行是Linux發行版本號,第二行是內核版本號和登錄的虛擬控制台,我們
在第三行輸入登錄名,按「Enter」鍵在Password後輸入賬戶密碼,即可登錄系統。出於安
全考慮,輸入賬戶密碼時字元不會在屏幕上回顯,游標也不移動。
登錄後會看到下面這個界面(以超級用戶為例):
[root@localhost root]#
last login:Tue ,Nov 18 10:00:55 on vc/1
上面顯示的是登錄星期、月、日、時間和使用的虛擬控制台。
4.應用技巧
Linux是一個真正的多用戶操作系統,可以同時接受多個用戶登錄,還允許一個用戶進行多
次登錄。這是因為Linux和許多版本的Unix一樣,提供了虛擬控制台的訪問方式,允許用戶
在同一時間從控制台(系統的控制台是與系統直接相連的監視器和鍵盤)進行多次登錄。每
個虛擬控制台可以看作是一個獨立的工作站,工作台之間可以切換。虛擬控制台的切換可以
通過按下Alt鍵和一個功能鍵來實現,通常使用F1-F6 。
例如,用戶登錄後,按一下「Alt F2」鍵,用戶就可以看到上面出現的「login:」提示符,
說明用戶看到了第二個虛擬控制台。然後只需按「Alt F1」鍵,就可以回到第一個虛擬控
制台。一個新安裝的Linux系統允許用戶使用「Alt F1」到「Alt F6」鍵來訪問前六個虛擬
控制台。虛擬控制台最有用的是,當一個程序出錯造成系統死鎖時,可以切換到其它虛擬控
制台工作,關閉這個程序。
shutdown
1.作用
shutdown命令的作用是關閉計算機,它的使用許可權是超級用戶。
2.格式
shutdown [-h][-i][-k][-m][-t]
3.重要參數
-t:在改變到其它運行級別之前,告訴init程序多久以後關機。
-k:並不真正關機,只是送警告信號給每位登錄者。
-h:關機後關閉電源。
-c:cancel current process取消目前正在執行的關機程序。所以這個選項當然沒有時間
參數,但是可以輸入一個用來解釋的訊息,而這信息將會送到每位使用者。
-F:在重啟計算機時強迫fsck。
-time:設定關機前的時間。
-m: 將系統改為單用戶模式。
-i:關機時顯示系統信息。
4.命令說明
shutdown命令可以安全地將系統關機。有些用戶會使用直接斷掉電源的方式來關閉Linux系
統,這是十分危險的。因為Linux與Windows不同,其後台運行著許多進程,所以強制關機可
能會導致進程的數據丟失,使系統處於不穩定的狀態,甚至在有的系統中會損壞硬體設備(
硬碟)。在系統關機前使用 shutdown命令,系統管理員會通知所有登錄的用戶系統將要關
閉,並且login指令會被凍結,即新的用戶不能再登錄。
5.舉例
shutdown -h 3:40
說明 3:40開始關機。
halt
1.作用
halt命令的作用是關閉系統,它的使用許可權是超級用戶。
2.格式
halt [-n] [-w] [-d] [-f] [-i] [-p]
3.主要參數說明
-n:防止sync系統調用,它用在用fsck修補根分區之後,以阻止內核用老版本的超級塊覆
蓋修補過的超級塊。
-w:並不是真正的重啟或關機,只是寫wtmp(/var/log/wtmp)紀錄。
-f:沒有調用shutdown,而強制關機或重啟。
-i:關機(或重啟)前,關掉所有的網路介面。
-f:強迫關機,不呼叫shutdown這個指令。
-p: 當關機的時候順便做關閉電源的動作。
-d:關閉系統,但不留下紀錄。
4.命令說明
halt就是調用shutdown -h。halt執行時,殺死應用進程,執行sync(將存於buffer中的資
料強制寫入硬碟中)系統調用,文件系統寫操作完成後就會停止內核。若系統的運行級別為
0或6,則關閉系統;否則以shutdown指令(加上-h參數)來取代。
reboot
1.作用
reboot命令的作用是重新啟動計算機,它的使用許可權是系統管理者。
2.格式
reboot [-n] [-w] [-d] [-f] [-i]
3.主要參數
-n: 在重開機前不做將記憶體資料寫回硬碟的動作。
-w: 並不會真的重開機,只是把記錄寫到/var/log/wtmp文件里。
-d: 不把記錄寫到/var/log/wtmp文件里(-n這個參數包含了-d)。
-i: 在重開機之前先把所有與網路相關的裝置停止。
install
1.作用
install命令的作用是安裝或升級軟體或備份數據,它的使用許可權是所有用戶。
2.格式
(1)install [選項]... 來源 目的地
(2)install [選項]... 來源... 目錄
(3)install -d [選項]... 目錄...
在前兩種格式中,會將
⑦ linux命令詳解之at
Linux下,有兩個命令可以用來作為計劃任務而執行,
要使用一次性任務計劃,linux必須要有負責這個計劃任務的服務,那就是atd服務
但是並非所有的linux distribution都默認會打開,我們需要手動激活愛聽的任務
如果服務未安裝,則需要手動安裝
#:yum install - y at 或 #:apt-get install at
如果擔心啟動是否執行OK的話,可使用命令查看:
#:ps aux |grep atd
或者使用
systemctl status atd
# 查閱一下 atd 目前的狀態,Active 狀態應是 running
使用 at 這個指令來產生所要運行的工作,並 將這個工作以文本文件的方式寫入 /var/spool/cron/atjobs/ 目錄內,該工作便能等待 atd 這個服務的取用與執行了。 不過,因為安全的理由,並不是所有的人都可以進行 at 工作調度!
at 的使用限制是利用 /etc/at.allow 與 /etc/at.deny 這兩個文件來進行的! 加上這兩個文件後,at 的工作情況其實是這樣的:
在一般的 distributions 當中,由於假設系統上的所有用戶都是可信任的,因此系統通常會保留一個空的 /etc/at.deny 文件,意思是允 許所有人使用 at 指令的意思 (您可以自行檢查一下該文件)。 不過,萬一你不希望有某些 使用者使用 at 的話,將那個使用者的帳號寫入 /etc/at.deny 即可! 一個帳號寫一行。
單一工作調度的進行就使用 at 這個指令!這個指令的運行非常簡單!將 at 加上一個時間即可!基本的語法如下:
事實上,當我們使用 at 時會進入一個 at shell 的環境來讓使用者下達工作指令,此時,建議 你最好使用絕對路徑來下達你的指令,比較不會有問題!由於指令的下達與 PATH 變數有關, 同時與當時的工作目錄也有關連 (如果有牽涉到文件的話),因此使用絕對路徑來下達 指令,會是比較一勞永逸的方法。 舉例來說,你在 /tmp 下達 at now 然後輸入 mail -s "test" root < .bashrc , 問一下,那個 .bashrc 的文件會是在哪裡?答案是 /tmp/.bashrc !因為 at 在運行時,會跑到當時下達 at 指令的那個工作目錄運行!
要注意的是,如果在 at shell 內的指令並沒有任何的訊息輸出,那麼 at 默認不會發 email 給執行者的。 如果你想要讓 at 無論如何都發一封 email 告知你是否執行了指令,那麼 可以使用「 at -m 時間格式 」來下達指令! at 就會傳送一個訊息給執行者,而不論該指令執行有無訊息輸出了!
如果要在某某時刻,在我的終端機顯示出 Hello 的字樣,可以通過終端機的設備來處理!假如你在 tty1 登陸(在命令行裡面輸入 tty 可以查看),則可以使用 echo "Hello" > /dev/tty1 。
at 有另外一個很棒的優點, 由於 at 工作調度的使用上,系統會將該項 at 工作獨立出你的 bash 環境中, 直接交給系統的 atd 程序來接管,因此,當你下達了 at 的工作之後就可以立刻離線了, 剩下的工作就完全交 給 Linux 管理即可!所以如果有長時間的網路工作時,使用 at 可以讓你免除網路斷線後的困擾。
其實 batch 是利用 at 來進行指令的下達!只是加入一些控制參數而已。這個 batch 神奇的地方在於:他會在 CPU 的工作負載小於 0.8 的時候,才進行你所下達的工作任務啦!
那什麼是工作負載 0.8 呢?這個工作負載的意思是: CPU 在單一時間點所負責的工作數量。不是CPU 的使用率喔! 舉例來說,如果我有一隻程序他需要一直使用 CPU 的運算功能,那麼此 時 CPU 的使用率可能到達 100% , 但是 CPU 的工作負載則是趨近於「 1 」,因為 CPU 僅負責一個工作!如果同時執行這樣的程序兩支呢? CPU 的使用率還是 100% ,但是工作負載 則變成 2 了! 所以也就是說,當 CPU 的工作負載越大,代表 CPU 必須要在不同的工作之間進行頻繁的工 作切換。 因為一直切換 工作,所以會導致系統忙碌啊! 系統如果很忙碌,還要額外進行 at ,不太合理!所以才有 batch 指令的產生!
下面來實驗一下 batch 好了!為了產生 CPU 較高的工作負載,我們用了 計算 pi 的腳本,連續執行 4 次這只程序, 來模擬高負載,然後看看batch 的工作現象。
使用 uptime 可以觀察到 1, 5, 15 分鍾的「平均工作負載」量,因為是平均值,所以當我們如上 表刪除掉四個工作後,工作負載不會立即降低, 需要一小段時間讓這個 1 分鍾平均值慢慢回 復到接近 0 啊!當小於 0.8 之後的「整分鍾時間」時,atd 就會將 batch 的工作執行掉了!
什麼是「整分鍾時間」呢?不論是 at 還是 crontab,他們最小的時間單位是「分 鍾」,所以,基本上,他們的工作是「每分鍾檢查一次」來處理的! 就是整分 (秒為 0 的時候),同時,你會發現其實 batch 也是使用 atq/atrm 來管理的!
⑧ linux中at命令
linux
at
命令詳解
使用方式
:
at
-V
[-q
queue]
[-f
file]
[-mldbv]
TIME
說明
:
at
可以讓使用者指定在
TIME
這個特定時刻執行某個程序或指令,TIME
的格式是
HH:MM其中的
HH
為小時,MM
為分鍾,甚至你也可以指定
am,
pm,
midnight,
noon,
teatime(就是下午
4
點鍾)等口語詞。
如果想要指定超過一天內的時間,則可以用
MMDDYY
或者
MM/DD/YY
的格式,其中
MM
是分鍾,DD
是第幾日,YY
是指年份。另外,使用者甚至也可以使用像是
now
+
時間間隔來彈性指定時間,其中的時間間隔可以是
minutes,
hours,
days,
weeks。
另外,使用者也可指定
today
或
tomorrow
來表示今天或明天。當指定了時間並按下
enter
之後,at
會進入交談模式並要求輸入指令或程序,當你輸入完後按下
ctrl+D
即可完成所有動作,至於執行的結果將會寄回你的帳號中。
參數
:
-V
:
印出版本編號
-q
:
使用指定的佇列(Queue)來儲存,at
的資料是存放在所謂的
queue
中,使用者可以同時使用多個
queue,而
queue
的編號為
a,
b,
c...
z
以及
A,
B,
...
Z
共
52
個
-m
:
即使程序/指令執行完成後沒有輸出結果,
也要寄封信給使用者
-f
file
:
讀入預先寫好的命令檔。使用者不一定要使用交談模式來輸入,可以先將所有的指定先寫入檔案後再一次讀入
-l
:
列出所有的指定
(使用者也可以直接使用
atq
而不用
at
-l)
-d
:
刪除指定
(使用者也可以直接使用
atrm
而不用
at
-d)
-v
:
列出所有已經完成但尚未刪除的指定
⑨ linux.at 命令怎麼用
一次性定時計劃任務的at命令的用法!
1.命令格式:
at[參數][時間]
2.命令功能:
在一個指定的時間執行一個指定任務,只能執行一次,且需要開啟atd進程(
ps -ef | grep atd查看, 開啟用/etc/init.d/atd start or restart; 開機即啟動則需要運行 chkconfig --level 2345 atd on)。
3.命令參數:
-m 當指定的任務被完成之後,將給用戶發送郵件,即使沒有標准輸出
-I atq的別名
-d atrm的別名
-v 顯示任務將被執行的時間
-c 列印任務的內容到標准輸出
-V 顯示版本信息
-q<列隊> 使用指定的列隊
-f<文件> 從指定文件讀入任務而不是從標准輸入讀入
-t<時間參數> 以時間參數的形式提交要運行的任務 《Linux就該這么學》
使用實例:
實例1:三天後的下午 5 點鍾執行 /bin/ls
命令:
at 5pm+3 days
輸出:
[root@localhost ~]# at 5pm+3 days
at> /bin/ls
at> <EOT>
job 7 at 2013-01-08 17:00
[root@localhost ~]#
說明:
實例2:明天17點鍾,輸出時間到指定文件內
命令:
at 17:20 tomorrow
輸出:
[root@localhost ~]# at 17:20 tomorrow
at> date >/root/2013.log
at> <EOT>
job 8 at 2013-01-06 17:20