小编Shr*_*ut1的帖子

间隔 cron 什么时候第一次执行?(例如:*/3 天)

tl;dr:cron 是否使用间隔的数值与当天的数值进行比较来确定其执行时间,还是在创建后的规定时间“每 3 天”一次?

题:

如果我添加以下作业,crontab -e它会在明天午夜首次运行还是从明天开始运行三天?还是仅在每月的“第三”天?第 1、4、7、10 天……?

0 0 */3 * * /home/user/script.sh

我昨天把这个 cron 放进去,今天早上它运行了(这可能是我问题的答案),但我想验证这是否正确。今天是第 31 天,该间隔值似乎确实属于该序列。如果 cron 在本月 1 号开始执行一个间隔,它明天会为我再次运行吗?

补充说明:

已经有一些关于cron的优秀文章和资源一般(这是一个共同的话题,我知道),但是,对于一个特定的时间间隔的出发点是不一样清楚给我。多个来源以多种方式表达它:

  • 这个unixgeeks.org帖子指出:

    Cron 还支持 'step' 值。dom 字段中的值 */2 表示命令每两天运行一次,同样,小时字段中的 */5 表示命令每 5 小时运行一次。

    • 那么,每两天真正隐含的什么?
  • 这个答案指出,cronjob of0 0 */2 * *将在“每个奇数日的 00:00 执行(步骤 2 的默认范围,即 1,3,5,7,...,31)”

    • cron 总是从一个月的第一天开始吗?
    • 由于间隔基于当天的数值,该博客似乎指出 cron 将在 31 日执行,然后在下个月的 1 日再次执行(因此连续两天)。
  • 这篇博文中的另一个例子

    • 0 1 1 */2 * …

cron scheduling

13
推荐指数
2
解决办法
1722
查看次数

如果打开,iptables 会将流量转发到 vpn 隧道

我使用以下指南将我的树莓派设置为接入点:

Raspberry Pi 3 作为 wifi 接入点

我转发wlan0eth0和内廷我所有的流量。效果很好!

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE  
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT  
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT 
Run Code Online (Sandbox Code Playgroud)

现在我想设置相同的规则,除了使用接口tun0-00并通过我的 vpn 隧道转发我的所有流量。我确实想发送所有内容,不希望任何内容泄漏到主机网络中。想想它是这样的:

sudo iptables -t nat -A POSTROUTING -o tun0-00 -j MASQUERADE
sudo iptables -A FORWARD -i tun0-00 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A …
Run Code Online (Sandbox Code Playgroud)

iptables openvpn forwarding tunneling

11
推荐指数
1
解决办法
6万
查看次数

WPA 请求方在酒店 wifi 中丢弃/断开网卡

TL; 博士

使用 USB Wifi 加密狗时,WPA Supplicant 在我的 Raspberry Pi 3 上间歇性失败。在“重新连接”或更改酒店中的接入点时,它似乎会这样做。

WPA GUI 状态:“wpa_gui 无法从 wpa_supplicant 获取状态”并且无线连接的图标从已连接的“waves”变为两个状态为“未找到无线接口”的显示器。

如何阻止我的 wifi 卡断开连接?

我尝试过的配置/事情:

  • 将 USB wifi 加密狗本身连接到有源的外部 USB 集线器(USB 3.0,4 安培电源)
  • /etc/network/interfaces使用术语“无线电源关闭”将 wlan1(加密狗)文件中的“电源管理”切换为“关闭”并重新启动网络服务
  • 修改/etc/default/crda文件以将变量“REGDOMAIN”从空白值更改为“US”
  • 使用具有 10dbi 增益值的定向平板天线指向接入点

有关 Pi 和加密狗的信息:

  • 运行 Raspbian Jessie Kernel 4.1 版(2016 年 3 月 18 日发布)
  • uname -a 表示“Linux raspberrypi 4.1.19-v7+”#858 SMP Tue Mar 15 15:56:00
  • lsusb表示RT5730无线芯片组;这张卡应该是由 raspbian 原生支持的
  • 软件狗目前附有一个 2dbi 增益的全向天线。

有关问题的其他信息:

  • 无线网卡连接到具有多个接入点和许多其他用户的酒店 wifi 网络。
  • 我周围至少有 18 个不同的接入点,其广播强度在 -47db 左右。尽管干扰可能是问题,但信号强度似乎不是问题。
  • 当单元重新验证或(可能)更改为同一网络上的不同接入点(同一 …

networking wifi wpa-supplicant authentication raspbian

5
推荐指数
1
解决办法
2493
查看次数

如何从bash中的文件名列表中删除文件扩展名

我正在尝试从使用以下 bash 脚本生成的文件列表中删除文件扩展名:

 #!/bin/bash
 file_list=$(find . -type f) #assuming that the files are stored in the same directory
 trimmed_file_list=$(printf '%s\n' "${file_list[@]%.*}")
 printf '%s\n' "${trimmed_file_list[@]}"
Run Code Online (Sandbox Code Playgroud)

此扩展从列表中的最后一个条目中删除扩展名,但不会删除任何较早的条目。

例如,我想要以下列表:

 file1.pdf
 file2.pdf
 file3.png
Run Code Online (Sandbox Code Playgroud)

成为

 file1
 file2
 file3
Run Code Online (Sandbox Code Playgroud)

但相反,我得到:

 file1.pdf
 file2.pdf
 file3
Run Code Online (Sandbox Code Playgroud)

我不想在循环中执行此操作,我想使用参数扩展。我想避免剪切,因为我只想删除文件中的最后一个扩展名。

有很多关于参数扩展的主题,似乎 bash 可能会因为find使用换行符而窒息......我真的不确定。如果另一个预先存在的主题解释了这个问题,我不完全理解发生了什么。

似乎相关但似乎无法解决我的问题的主题:

bash find string printf

2
推荐指数
1
解决办法
4833
查看次数