執行腳本失敗
1. Crontab定時任務中python3腳本無法運行問題解決
背景:
XX集團電商化標准地址增量生成及上傳功能為Python3腳本實現。上傳腳本並編寫執行shell後,手動執行shell能生成且上傳成功,但將shell腳本添加到crontab後執行失敗,失敗原因日誌無法列印。
解決:
排除腳本路徑及文件許可權導致問題可能性後,分析後原因為環境變數的問題:crontab執行腳本的時候不會讀取用戶的環境變數等配置,所以可能很多命令不能使用導致腳本執行失敗;
1)查看用戶環境變數-env,獲取path路徑:
2)將path放到shell導入,並進行環境初始化
3)添加crontab
大家如有遇到其他問題或者有更好解決思路,歡迎積極留言,共勉。
2. 為什麼按鍵精靈腳本運行不了
這個界面是腳本編輯界面,你可以在右邊腳本描述那裡給它重新寫個名字,然後點上面的按鈕「保存退出」,就能保存腳本並退回到按鍵精靈主界面,在那裡有腳本列表,找到你剛保存的腳本,看看你這個腳本前面「有效」那一欄是否有勾,沒勾的話勾上,然後把需要用按鍵精靈的網頁打開,點快捷鍵F10。
按鍵精靈腳本沒問題按啟動熱鍵沒反應是因為最後沒有進行保存設置,步驟如下:
1、首先第一步就是進行打開按鍵精靈應用軟體,進入按鍵精靈頁面,在左方的選項中選擇「我的腳本」,進入我的腳本瀏覽,找到需要更改的腳本列表,如下圖所示。
2、然後就是進行找到需要更改快捷鍵設置的腳本文件,進入瀏覽,選定腳本文件後,這時候右鍵點擊腳本名稱,彈出操作列表即可。
3、然後就是進行在彈出的操作列表中,選擇「屬性」選項,系統會自動彈出屬性窗口,進入腳本屬性窗口,如下圖所示。
4、接著就是進行在彈出的屬性窗口中,這時候可以修改腳本名稱和腳本文件名稱,在下方點擊「修改熱鍵」,進入快捷鍵修改頁面如下圖所示。
5、接著就是在彈出的快捷鍵修改窗口中,找到「啟動」對應的輸入框,再把原始快捷鍵設置刪除,接著按下需要設置的鍵盤按鍵,自動輸入即可。
6、然後就是完成啟動熱鍵的設置輸入後,點擊「確認」,即可完成設置,回到腳本屬性頁面,如下圖所示。
7、最後就是進行回到腳本屬性窗口後,點擊下方的「保存設置」按鈕,即可對所有更改設置進行保存,保存完成後即完成快捷鍵的設置修改即可。
3. 按鍵精靈腳本運行初始化失敗怎麼辦
1,按照腳本的信息進行設置他規定的解析度,
2,腳本的時間過期了
3,程序主要文件, 被意外刪除。
4,系統或殺毒名軟體攔截。
解決方案
一:更新腳本時間
二:關閉殺毒軟體
三:重新下載源文件
四:查看是否設置解析度等其他問題是否解決
4. Windows下Shell腳本運行錯誤展示錯誤信息並停止向下執行
shell腳本運行完畢之後會直接關閉窗口,不便於開發者查看運行結果,這點可以通過 sleep 來實現暫停
新建腳本 demoshell
在命令窗口執行 demoshell.sh xxxxx ,會啟動 shell 窗口 ,列印 params1= xxxxx 之後就會關閉窗口
想要不關閉窗口可以在腳本的最後添加 sleep 來實現。
例如
再次執行 demoshell.sh xxxxx ,執行完畢之後,窗口不會直接關閉,可以查看運行結果
shell腳本還有一個不好的地方就是中間的一個命令運行失敗之後還會繼續向下執行,這是一個很危險的行為,並且向下執行的時候會沖掉失敗信息,無法根據錯誤提示來修改腳本。
接下來執行一個不存在的任務,讓shell腳本運行失敗
執行失敗之後由於 sleep 100 ,可以看到錯誤提示,如果沒有 sleep 100 存在,執行失敗之後也是立馬關閉了窗口,看不到錯誤信息;而命令執行成功之後需要關閉窗口的,那能不能想辦法做到兩者兼顧呢?
答案是肯定的,原理就是判斷命令執行狀態,只有在命令執行失敗的時候,觸發sleep行為,阻塞命令向下運行
去掉 sleep 100 ,運行腳本,捕獲到失敗信息,顯示錯誤信息,並停止向下執行
注釋掉 ./gradlew :app:emptyTask -x lint ;
再次運行腳本,運行成功,直接就關閉了窗口
5. 解決Win10系統腳本無法正常運行,因為在此系統上禁止運行腳本
法 加 載 文 件 D:PythondemovenvScriptsactivate.ps1, 因 為 在 此 系 統上禁止運行腳本
首先我們需要打開powerShell用管理員方式打開,這樣可以確保你輸入的代碼能夠有足夠的許可權然後輸入
get-ExecutionPolicy點擊回車
下面會出現Restricted點擊回車
在輸入set-ExEcutionPolicy RemoteSigned會彈出
執行策略更改
執行策略可幫助你防止執行不當的腳本。更改執行策略可能會產生安全風險,比如 https:/go.microsoft.com/fwlink/?LinkID=135170
中的 about_Execution_Policies 幫助主題所述。是否要更改執行策略呢?
[Y] 是(Y) [A] 全是(A) [N] 否(N) [L] 全否(L) [S] 暫停(S) [?] 幫助 (默認值為「N」): Y
選擇Y就可以了
6. 電腦老是提示運行腳本錯誤怎麼解決
腳本scripq是使用一種特定的描述性語言,依據一定的格式編寫的可執行文件,又稱作宏或批處理文件。腳本通常可以由應用程序臨時調用並執行。各類腳本目前被廣泛地應用於網頁設計中,因為腳本不僅可以減小網頁的規模和提高網頁瀏覽速度,而且可以豐富網頁的表現,如動畫、聲音等。
腳本對於一些網頁的支持很重要,如果提示腳本錯誤或者腳本被禁用,開啟即可。方法如下:
1、在IE瀏覽器中打開Internet選項,切換到安全選項卡
2、點擊自定義級別,在彈出的對話框中,找到腳本選項
3、將腳本下的也即是圖中紅框處的三個腳本啟用即可,這樣就可以開啟腳本了。
但是如果還不起作用的話,那就有可能腳本遭到了破壞,這樣的話需要進行全部的修復,需要使用CMD命令進行修復。方法如下:
1、在開始搜索框輸入CMD,打開命令提示符。
2、輸入regsvr32 jscripq.dll,回車→彈出成功提示後,點擊「確定」。
3、輸入regsvr32 vbscripq.dll,回車→彈出成功提示後,點擊「確定」。
這樣的話,就會進行修復全部的腳本,重啟之後再也不不會出現提示腳本錯誤的問題了。
7. centos 系統下sh腳本無法執行的問題處理
新的系統遇到奇怪的問題,看門狗腳本無法正常運行,提示如下錯誤:
relocation error: /lib/libpthread.so.0: symbol h_errno, version GLIBC_PRIVATE not defined in file libc.so.6 with link time reference。
進入/usr/lib64目錄下,發現軟連接 libpthread.so.0-->libpthread-2.17.so.
於是刪除libpthread.so.0, 設想從自己運行程序的當前目錄拷貝一個libpthread.so.0 覆蓋。結果無法執行cp拷貝命令,提示缺少libpthread.so.0. 於是恢復原來的libpthread.so.0, 然後在執行cp強制覆蓋命令,結果導致了伺服器重啟。
最後,將自己運行程序的libpthread.so.0 重命名為libpthread.so.1, 拷貝到/usr/lib64目錄下。
然後新建軟連接 ln -s libpthread.so.1 libpthread.so.0 .
此時在執行sh看門狗腳本,此時提示libresolv.so.2與GLIBC不兼容。
從新從自己運行的程序路徑下的libresolv.so.2重命名為libresolv.so.3. 將libresolv.so.3拷貝到/usr/lib64路徑下。
刪除之前軟連接libresolv.so.2。 重新建立軟連接 ln -s libresolv.so.3 libresolv.so.2
現在再執行腳本,腳本運行正常。
8. Windows (win10) 執行Python腳本,輸入文件失敗
因為windows默認使用gbk作為默認字元編碼格式,所以python以utf8寫入失敗。
這里強制python打開windows文件的時候,以utf8格式。
Error occurs when trying to redirect Python UTF-8 stdout to a file on Windows - Stack Overflow
Python: Use the UTF-8 mode on Windows! - DEV Community
1. Command line and environment — Python 3.9.6 documentation