Получение ошибки в crontab @reboot

Я пытаюсь изменить свой MAC-адрес каждый раз, когда я перезагружаю систему. Таким образом, я записал сценарий, и он присоединяется рев.

#!/bin/bash -x  
echo "Date $(date)"  
systemctl stop NetworkManager.service  
ip addr  
macchanger -r wlx9cefd5fe0d41  
systemctl start NetworkManager.service

Когда я запускаю скрипт в терминале, это - успешно changeing MAC-адрес, но когда я использую crontab, чтобы сделать это, я получаю следующую ошибку:

[ERROR] Could not change MAC: interface up or insufficient permissions: Device or resource busy.

Я выполняю crontab как корень и журналами, которые я присоединил шоу, на которые снижается интерфейс. Кто-то может помочь мне? Если существует лучший путь, я открыт для него.

Это - моя crontab строка:

@reboot bash -x /home/user/changeMac.sh >> /home/user/testlog.txt 2>&1

Файл журнала:

++ date
+ echo 'Date Wed Aug 22 21:27:32 PDT 2018'
Date Wed Aug 22 21:27:32 PDT 2018
+ systemctl stop NetworkManager.service
+ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
  link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  inet 127.0.0.1/8 scope host lo
  valid_lft forever preferred_lft forever
  inet6 ::1/128 scope host 
  valid_lft forever preferred_lft forever
2: enp0s25: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
  link/ether  brd ff:ff:ff:ff:ff:ff
3: wlx9cefd5fe0d41: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
  link/ether  brd ff:ff:ff:ff:ff:ff
+ macchanger -r wlx9cefd5fe0d41
[ERROR] Could not change MAC: interface up or insufficient permissions: Device or resource busy
Current MAC:    (unknown)
Permanent MAC:  (unknown)
+ systemctl start NetworkManager.service
1
задан 23 August 2018 в 09:19

1 ответ

Журнал не говорит о том, что интерфейс не работает, он жалуется, что он работает! Для правильного сброса добавьте

ip link set wlx9cefd5fe0d41 down

к вашему сценарию перед строкой macchanger. Чтобы снова вызвать его, используйте эквивалент:

ip link set wlx9cefd5fe0d41 up

Как вы, вероятно, поняли, для манипулирования сетевыми устройствами ip следует использовать. NetworkManager - это просто демон, управляющий конфигурацией сети.

1
ответ дан 7 December 2019 в 15:14

Другие вопросы по тегам:

Похожие вопросы: