Linux下定时执行脚本和设置http代理

安装crontab

yum install  vixie-cron

yum install crontab
image
image

启动crontab服务

service crond start

用以下的方法启动、关闭这个cron服务:
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置

查看crontab运行状态

service crond status

image

加入开机自动启动:

chkconfig –level 35 crond on 或chkconfig crond on

编写脚本

touch /home/sq.sh 在home目录下新建sq.sh脚本

image

编辑脚本并写入命令执行语句

vi /home/sq.sh

image

/bin/bash 是必须要写的,表示要是/bin/bash这个执行脚本的命令执行接下来写的脚本, echo "hello world !!"表示想前端打印一句话即输出语句,>>表示将语句输出到指定路径

脚本编写完成后,.通过chmod命令赋予该脚本的执行权限chmod 777 sq.sh,否则没有执行权限

添加任务调度

crontab -e进入添加页面,添加*/1 * * * * /home./sq.sh表示每分钟执行一次改脚本

image

输入完毕后输入:wq保存退出

crontab -l 查看已经添加的任务调度

image

重启任务调度服务开始执行任务调度

/etc/init.d/crond restart

image

查看任务调度是否生效

tail -f /home/sq_nohup.out

image

命令的使用

a.png
b.png

遇到的问题

在这里插入图片描述

进入/var/spool下查看cron目录是正常的,但是在cron里面没有权限建立文件这个根源。
1.可以尝试先在/var/spool/cron目录下用vim编辑一个测试文件,看是否可以保存在这个cron目录下,如果无法保存提示权限问题。
那么可能目录有什么特殊的地方,root用户也被约束了
查看是否有特殊的属性
[root@node7 cron]# lsattr /var/spool/cron/
去掉特殊的属性
[root@node7 cron]# chattr -ai /var/spool/cron
再次编辑定时任务:
[root@node7 cron]# crontab -e
crontab: installing new crontab
[root@node7 cron]#
保存成功了。

小知识

使用root权限都不能编辑某个文件,很可能是使用chattr命令锁定该文件了。通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。lsattr命令是显示chattr命令设置的文件属性。

使用lsattr file 查看是否被锁:
[root@localhost packages]# lsattr /etc/shadow

使用chattr -i file解锁
[root@localhost packages]# chattr -i /etc/shadow

使用chattr -i file加锁
[root@localhost packages]# chattr +i /etc/shadow


TinyProxy http代理

Tinyproxy 是一个轻量级的开源 web 代理守护进程,其设计目标是快而小。它适用于需要完整 HTTP 代理特性,但系统资源又不足以运行大型代理的场景,比如嵌入式部署。

Tinyproxy 对小规模网络非常有用,这样的场合下大型代理会使系统资源紧张,或有安全风险。Tinyproxy 的一个关键特性是其缓冲连接的理念。从效果上看, Tinyproxy 对服务器的响应进行了高速缓冲,然后按照客户端能够处理的最高速度进行响应。该特性极大的降低了网络延滞带来的问题。

安装 TinyProxy

yum -y install tinyproxy

配置 TinyProxy

vim /etc/tinyproxy/tinyproxy.conf

修改 Port 端口,默认为 8888

Port 8888

注释掉 Allow,表示允许所有人访问代理

#Allow 127.0.0.1

隐藏掉Via请求头部,去掉下面的注释

DisableViaHeader Yes

更多配置项,下面是列举一些配置文件默认的,不需要配置

PidFile "/var/run/tinyproxy/tinyproxy.pid"
LogFile "/var/log/tinyproxy/tinyproxy.log"
LogLevel Info
MaxClients 100
MinSpareServers 5
MaxSpareServers 20
StartServers 10
启动 TinyProxy
systemctl start tinyproxy.service 
systemctl restart tinyproxy.service 
systemctl stop tinyproxy.service 
systemctl status tinyproxy.service 
systemctl enable tinyproxy.service 

配置防火墙

firewall-cmd --add-port=8888/tcp  --permanent
firewall-cmd  --reload

连接测试,在另一台客户机上输入

curl -x : www.baidu.com

代理请求过滤,示例:仅允许代理请求 anoyi.com 的内容,配置如下:

# 指定过滤内容的文件位置
Filter "/etc/tinyproxy/filter"

# 使用 URL 过滤而不是 domains
FilterURLs On

# 允许代理过滤文件里的地址,若不允许,此处设置为 No
FilterDefaultDeny Yes

然后在 /etc/tinyproxy/filter 文件添加如下内容:

anoyi.com

查看代理请求日志

tail -f /var/log/tinyproxy/tinyproxy.log

你可能感兴趣的:(Linux下定时执行脚本和设置http代理)