Для этого вы должны запустить свой скрипт как systemd модуль (, предполагая, что у вас есть systemd ), где вы можете определить зависимость...
Если вы хотите придерживаться cron @reboot(то, что кажется простым выбором )вы должны сделать свой скрипт немного умнее (или запускать cron после монтирования fs... что изменить? не предложил бы ). Вместо простой задержки можно проверить, смонтирована ли нужная файловая система (в bash):
while ! mount | awk '{print $3}' | grep -qx /the/mountpoint; do
sleep 1
done
Или вы можете проверить, есть ли там файл, который вам нужен:
while ! [ -f /that/file ] ; do
sleep 1
done
yes I want to NAT the traffic from my wifi adapter on wlan0 to my machine which has another network on usb0.
Обычно вы формулируете это наоборот :вы хотите транслировать через NAT трафик сusb0
("внутреннего интерфейса" ), когда он выходит на wlan0
в направлении остального мира.
Таким образом, только маскарад на внешнем интерфейсеwlan0
:
EXTIF=wlan0
INTIF=usb0
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
iptables -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
Последняя строка важна и выполняет фактический NAT. Остальные только фильтруют и следят за тем, чтобы во внутреннюю сеть не попадало ничего забавного(usb0
).
(Прежде чем делать вышеописанное, обязательно удалите все правила, если они все еще активны ).