日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Fixed: MacOS Mojave(10.14) 解决终端用Crontab报权限问题(不管是Root还是普通用户)及Linux基础(shell)...

發布時間:2025/3/20 linux 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Fixed: MacOS Mojave(10.14) 解决终端用Crontab报权限问题(不管是Root还是普通用户)及Linux基础(shell)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

對于一些系統以及項目依賴,個人都有跟進的習慣;

Macos內置launchctl來寫定時任務..不會...

還是選擇了Linux常用的crontab;


問題

這問題可能是系統安全策略的問題.我一開始嘗試了好久;

不管是用Root還是自身用戶..都會報Operation not permitted(任務沒法寫入);

開始沒想到是系統版本太新(安全策略)的問題,實在沒轍只能去找來同事一起排查,排除了語法還是其他一些問題,

還是有問題,我說要不去你電腦試試,他的是10.13(能正常運行).于是開始谷歌大法,終于在國外的論壇也有遇到類似的問題..

有說到關閉Rootless機制的,也有說添加硬盤操作權限的,我選擇了后者;

  • 關閉Rootless的機制

我沒試過這個姿勢..有興趣的自己試試..

  • 添加硬盤訪問權限的,就是把你的終端加進去這里


Crontab的姿勢

crontab的用法還是很簡單的

  • -e: 就是進入編輯
  • -u: 指定用戶
  • -l: 列出調度清單
  • -r: 刪除調度任務

不帶用戶參數都是都是基于當前用戶來啟用crontab控制

語法格式:分鐘 小時 日 月 周 command shell_file

# demo */5 * * * * /bin/zsh /Users/linqunhe/Code/u-logs/autoShell.sh# / 是每隔, 還支持 , - 這類指定和連續的..具體看對應的手冊吧復制代碼

腳本的權限記得設置好,比如你指定普通用戶的,744便足以

r:4 , w:2 ,x : 1 ; u-g-o(自己/組/其他)-rwxr--r--@ 1 linqunhe staff 867B Dec 7 14:50 autoShell.sh復制代碼

我的調度需求很簡單,就是更新一些東西,有涉及到alias , 用到了zsh(因為寫在.zshrc)

#!/bin/zsh source ~linqunhe/.zshrc logPath="/Users/linqunhe/Code/u-logs/logs/$(date +'%Y-%m-%d').log" echo '--------更新腳本開始走起--------------' >> $logPath# 更新NG項目 cd /Users/linqunhe/Code/ng-sx-pc ng update --all 2>&1 >> $logPath echo '---------Ng Update End-------------' >> $logPath# 更新nuxt項目 cd /Users/linqunhe/Code/nuxt2-sx-mobile-share yarn outdated 2>&1 >> $logPath yu echo '---------Nuxt Update End-------------' >> $logPath# 更新umi項目(yu是我寫的alias) cd /Users/linqunhe/Code/umi_dva_sx_admin yarn outdated 2>&1 >> $logPath yu echo '---------Umi Update End-------------' >> $logPath# 更新老的react-sx-admin cd /Users/linqunhe/Code/react-sx-admin yarn outdated 2>&1 >> $logPath yu echo '---------react-sx-admin Update End-------------' >> $logPath# 更新全局的yarn npmyarn ygu 2>&1 >> $logPath echo '---------yarn global Update End-------------' >> $logPath# 列出全局的npm 包 ygl 2>&1 >> $logPath echo '---------yarn global list End-------------' >> $logPath# 更新brew && brew cask brew prune brew update 2>1 >> $logPath brew upgrade 2>&1 >> $logPath brew cask upgrade 2>&1 >> $logPath echo '----------Brew && Brew Cask Update End------------' >> $logPath# 更新MAC系統 softwareupdate -i -a 2>&1 >> $logPath echo '--------Mac OS Update End--------------' >> $logPath echo '--------更新腳本結束--------------' >> $logPath是1,所以">/dev/null"等同于"1>/dev/null" # 2 :表示stderr標準錯誤 # & :表示等同于的意思,2>&1,表示2的輸出重定向等同于1復制代碼

輸出就這樣了

  • 2018-12-07.log


總結

為什么在本本寫任務調度,因為筆記本常年不關機..基本都是待機狀態,開蓋即用..

有不對之處請留言,會及時修正. 謝謝閱讀

總結

以上是生活随笔為你收集整理的Fixed: MacOS Mojave(10.14) 解决终端用Crontab报权限问题(不管是Root还是普通用户)及Linux基础(shell)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。