❶ unix中的腳本運行問題
我們假定 腳本名稱為 aaa.sh
#./aaa.sh 和#aaa.sh的區別在於,./aaa.sh在當前的目錄下查找這個aaa.sh腳本文件,如果找到就執行。
#aaa.sh是在你的用戶的環境變數PATH里邊定義的所有目錄路徑中查找這個腳本文件,找到就執行。
關於
另外有時候腳本 相對路徑無法運行 ,但是絕對路徑可以運行是怎麼回事?
這個問題,道理是一樣的,絕對路徑你可以確保系統可以找到你腳本文件,而相對路徑,系統必須依賴於你執行腳本文件的那個用戶的環境變數PATH的值,如果包含你的腳本文件所在的路徑,就能找到這個腳本,如果沒有,就找不到這個腳本,自然沒法執行。
❷ 在UNIX環境下怎樣定時執行某個sql腳本
第一種方法:
在命令行下(未連接資料庫),輸入
mysql
-h
localhost
-u
root
-p123456
<
F:\hello
world\niuzi.sql
(注意路徑不用加引號的!!)
回車即可.
第二種方法:
在命令行下(已連接資料庫,此時的提示符為
mysql>
),輸入
source
F:\hello
world\niuzi.sql
(注意路徑不用加引號的)
或者
\.
F:\hello
world\niuzi.sql
(注意路徑不用加引號的)
回車即可.
❸ Lunix運行腳本、任務(sh、nohup、qsub)
產生日誌:
  
 sh **.sh &> xx.log
  
 不產生日誌:
  
 sh **.sh > /dev/null 2>&1 &
  
 nohup:no hang up 的縮寫,就是不掛斷的意思 。 
  
 nohup命令:如果你正在運行一個進程,而且你覺得在退出帳戶時該進程還不會結束,那麼可以使用nohup命令。 該命令可以在你退出帳戶/關閉終端之後繼續運行相應的進程。 在預設情況下該作業的所有輸出都被重定向到一個名為nohup.out的文件中。
  
 使用許可權:所有使用者
  
 語法格式
  
  nohup Command [ Arg … ] [& ]
  
 參數說明:
  
  Command :要執行的命令。
  
  Arg :一些參數,可以指定輸出文件。
  
  & :讓命令在後台執行,終端退出後命令仍舊執行。
  
 實例
  
 以下命令在後台執行 root 目錄下的 runoob.sh 腳本:
  
 nohup /root/runoob.sh &
  
 在終端如果看到以下輸出說明運行成功:
  
 appending output to nohup.out
  
 這時我們打開 root 目錄 可以看到生成了 nohup.out 文件。
  
 如果要停止運行,你需要使用以下命令查找到 nohup 運行腳本到 PID,然後使用 kill 命令來刪除:
  
 ps -aux | grep "runoob.sh"
  
 參數說明:
  
  a  : 顯示所有程序
  
  u  : 以用戶為主的格式來顯示
  
  x  : 顯示所有程序,不區分終端機
  
 另外也可以使用 ps -def | grep "runoob.sh" 命令來查找。
  
 找到 PID 後,就可以使用 kill PID 來刪除。
  
 kill -9  進程號PID
  
 以下命令在後台執行 root 目錄下的 runoob.sh 腳本,並重定向輸入到 runoob.log 文件:
  
 nohup /root/runoob.sh > runoob.log 2>&1 &
  
  2>&1  解釋:將標准錯誤 2 重定向到標准輸出 &1 ,標准輸出 &1 再被重定向輸入到 runoob.log 文件中。
  
 0 – stdin (standard input,標准輸入)
  
 1 – stdout (standard output,標准輸出)
  
 2 – stderr (standard error,標准錯誤輸出)
  
  實時監測日誌輸出內容命令:tail 
  
 tail 命令是nohup命令的好搭檔。配合-f參數,可以實時監視向日誌文件增加的信息。
  
 tail -f myout.log
  
 tail -f 等同於–follow=descriptor,根據文件描述符進行追蹤,當文件改名或被刪除,追蹤停止
  
 tail -F 等同於–follow=name --retry,根據文件名進行追蹤,並保持重試,即該文件被刪除或改名後,如果再次創建相同的文件名,會繼續追蹤
  
 tailf 等同於tail -f -n 10,與tail -f不同的是,如果文件不增長,它不會去訪問磁碟文件,所以tailf特別適合那些便攜機上跟蹤日誌文件,因為它減少了磁碟訪問,可以省電。
  
  監測程序是否在正常運行中:ps 
  
 ps命令也可以和nohup命令配合使用,用於顯示當前進程 (process) 的狀態。可以監視後台程序是否在正常運行中或者已經掛掉。
  
 ps -ef|grep yourcommand           # -ef 參數顯示所有命令,連帶啟動時的命令行參數
  
 qsub命令用來從登陸節點上向計算節點進行任務投遞。前提是在伺服器上有集群管理工具分配計算節點等。SGE(SGE, Sun Grid Engine)集群管理工具可以用來提交批處理作業,SGE支持單或多節點作業,它將用戶投遞的任務進行排隊,然後將任務交給能夠運行的結算節點執行,工作流程可以分為四步:接受用戶投放的任務;在任務運行以前,將任務放到一個存儲區域;發送任務到一個執行設備,並監控任務的運行;運行結束寫回結果並記錄運行日誌。
  
 qsub [ options ] [ command | -- [ command_args ]]
  
 1. -@ optionfile (contains all valid options)  就是把qsub命令的可選項組合成一定功能的語句,保存在一個文件中。  qsub -a optionfilename jobfilename  
  
 2. -a date_time   設置作業什麼時候可以執行。   格式:CC YY MMDDHHMM.SS 如 201109272213.21   qsub -a 201109272213.21 ../simplejob
  
 3. -A account_string  Identifies the account to which the resource consumption of the job should be charged   設置一個作業的賬戶名,便於統計該賬戶使用的資源等信息    qsub -A testaccountname jobname  
  
 4. -ac 添加名/值對到作業上下文   -dc 刪除。。   -sc 設置(修改)。。   Contexts provide a way to dynamically attach and remove meta-     information to and from a job. The context variables are not     passed to the job's execution context in its environment     The outcome of the evaluation of all -ac, -dc, and -sc options     or corresponding values in qmon is passed to defined JSV     instances as parameter with the name -ac.  
  
 5. -ar ar_id 分配已提交作業,作為它的一部分,給已存在預約。ar=advance reservation   qsub -ar 60 jobname   #ai_di = unsigned integer   
  
 6.  -b y[es]|n[o]      Gives the user the possibility to indicate explicitly whether       command should be treated as binary or script.     
  
 7. -binding 等待理解
  
 8.  -c occasion_specifier(際符)  定義或者重定義作業是否要被檢查,if是,在什麼環境下。        n           no checkpoint is performed.               s           checkpoint when batch server is shut down.               m           checkpoint at minimum CPU interval.               x           checkpoint when job gets suspended.               <interval>  checkpoint in the specified time interval.   qsub -c n jobname
  
 9. -C prefix_string 前綴字元串定義一個在作業命令中的指令     qsub -C "#$" ../simplejob   
  
 10.  -ckpt ckpt_name 選擇檢查點環境來檢查一個作業,同時聲明這個作業是檢查點作業。      qsub -ckpt allanckpt ../simplejob    
  
 11.  -clear 重置作業的所有元素為初始默認狀態    qsub -clear ../simplejob   
  
 12.  -cwd =current working directory  從當前的目錄開始執行作業。如果有相應的配置文件的話,    這個命令將啟動網格引擎的路徑別名設備。    
  
 13.  -dl date_time 設置作業在deadline之前執行完,格式為CC YYU MMDDHHMM.SS    qsub -dl 201101131159.01 ../simplejob
  
 14.  -e [[hostname]:]path,...定義或重新定義作業的標准錯誤流使用的路徑 e=stderror
  
 15.  -h | -h {u|s|o|n|U|O|S}... h=hold 暫停作業執行       'u' .........user hold.             `s'  denotes a system hold.               `o'  denotes a operator hold.               `n'  denotes no hold (requires manager privileges).               `U'  removes a user hold.               `S'  removes a system hold.               `O'  removes a operator hold.        qsub -h ../simplejob(qsub只能使用-h)
  
 16.  -l resource=value,... l=launch 啟動滿足資源需求的作業    Launch the job in a Grid Engine queue meeting the given resource               request list.  In case of qalter the previous definition is               replaced by the specified one.    qsub -l s_core=5 ../simplejob
  
 17.  -q wc_queue_list 定義或重定義可能用來執行作業的隊列,包括群聚隊列、隊列域、隊列實例。    qsub -q all.q ../simplejob
  
 18.  -hard  表示該作業在安排執行之前,作業的資源需求必須滿足。    qsub -hard  ../simplejob
  
 19.  -soft 表示該作業在安排執行之前,作業的資料需求可以有、但不必須有。    qsub -soft ../simplejob
  
 20.  -help 獲取幫助    qsub -help
  
 21.  -hold_jid   wc_job_listt 定義或重定義當前提交的作業對哪些作業有依賴,所依賴的作業使用通配符作業清單表示:wc_job_list    qsub -hold_jid 63926 ../simplejob
  
 22.  -hold_jid_ad wc_job_list ad=array dependency list of the submitted job    定義或者重定義組作業依賴列表。    qsub -hold_jid_ad 1-1200
  
 23.  -t n[-m[:s]]    指定組作業的數量,將指示器與作業關聯    qsub -t 1-1200 ../simplejob
  
 24.  -i [[hostname]:]file,... 定義或重定義一個文件為作業的標准輸入流    qsub -i stdin job
  
 25.  -j y[es]|n[o] 指定作業的標准錯誤流是否合並到標准輸出流,如果-j y 和-e都存在的話,SGE將忽略後者。    qsub -j y ../simplejob
  
 qstat -f        # 查看用戶任務
  
 qstat -j jobId  # 按任務id查看
  
 qstat -explain a|c|A|E -j jobID # 查看任務任務並給出解釋
  
 qstat -u user   # 按用戶查看
  
 qw: 表示等待狀態
  
 hqw: 任務掛起等待中,待依賴的任務完成後執行
  
 Eqw: 投遞任務出錯
  
 r: 表示任務正在運行
  
 s: 暫時掛起
  
 dr: 節點掛了之後,刪除任務就會出現這個狀態,只有節點重啟之後,任務才會消失
  
 qdel -j 1111   刪除任務號為1111的任務
  
 qdel -u AAA  刪除AAA投遞的所有任務
  
 歡迎大家交流心得~~~3QU!!!...........
  
 ---------------------------------------------------------------------------------------------------------I am a line !----------------------------------------------------------------------------------------------
❹ 跪求!如何編寫一個腳本,在unix下將備份文件上傳到ftp伺服器上,具體步驟。
這個是我寫的一個例子,你可以參考下,要把用戶名 密碼 ip改下即可!
my_ftp()
{
 ftp -i -n 112.31.8.51 << FTPIT
 user name "$ftp_passwd"
 cd /data/${resultDir}
 bin
 prompt
 mget *.out.temp2
 bye
 FTPIT
}
my_ftp
