利用shell脚本自动执行python程序

本文主要介绍如何用shell脚本自动执行py文件 以及我在操作时遇到的各种坑点

介绍一些简单概念 也算给自己做笔记 后面主要是各种坑

什么是shell脚本?

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言.
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务.
Shell 脚本(shell script),是一种为 shell 编写的脚本程序。业界所说的 shell 通常都是指 shell 脚本。
sh文件是脚本文件,一般都是bash脚本。想运行的话可以用sh命令运行:sh xxx.sh 有很多中方式 这里不多赘述


可以用来干嘛?

可玩性很大,比如挂爬虫定时爬取某个网站,定时重启服务器等等很多

我主要是用在自己电脑上 我的电脑一般常开 我想通过ssh远程连接它 因为电脑是通过路由器上网 所以内网地址经常变
我想自动执行别人写的一个Python DDNS脚本来获取内网地址 等稍后有空 会在另一片文章里介绍
在手动执行成功后想使用shell脚本自动执行 遇到了各种坑

具体怎么写脚本以及定时执行网上已经有很多非常完整的教程了 这里主要写我遇到的一些问题吧.

直接说最大坑点

py文件在终端直接运行可以运行 直接执行.sh文件也可以执行 但是!!!通过Crontab和Launchcat自动执行就提示出错!!!一般是提示缺少模块
我用的是Mac os 自动执行一般使用Crontab或Launchcat 两种我都试过了 刚开始都不行
后来扒了好多帖子终于找到原因:自动执行时sh文件 环境变量会出现问题

解决办法:在sh文件里加入source /etc/profile这行命令即可

ps:我这里刚开始加入后还提示报错,好像是因为编码问题没法输出中文 后来把py文件的中文输出改为英文后成功运行
参考文章以及Crontab使用教程:
https://blog.csdn.net/qq_44939796/article/details/89435401
https://blog.csdn.net/xingyue0422/article/details/83012000
Launchcat使用教程:
https://www.cnblogs.com/zhming26/p/6627734.html
其他问题:

  • 定时任务无法执行:可能是权限问题 可以使用chmod -R 777 文件路径
  • 找不到文件:Crontab Launchcat以及.sh文件中有涉及路径的地方 都用绝对路径
  • 定时任务不启动:重启Crontab服务 以及注意Launchcat load与start的区别 load是启动某定时任务 start是立即执行

主要在自己的博客更新 有时间会往CSDN转:博客地址:
raindecloud.top

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值