1 votes

Définir/récupérer la valeur des variables dans '/proc/sys/net' en utilisant le terminal

Considérer ces valeurs qui sont stockées dans leurs fichiers respectifs dans ce chemin : /proc/sys/net

/core/rmem_default 32768
/core/rmem_max 65536
/core/wmem_default 32768
/core/wmem_max 65536
/core/somaxconn 1024
/core/netdev_max_backlog 3000
/ipv4/tcp_rmem "4096 32768 65536"
/ipv4/tcp_wmem "4096 32768 65536"
/ipv4/tcp_low_latency 1
/ipv4/tcp_slow_start_after_idle 0
/ipv4/tcp_timestamps 1
/ipv4/tcp_tw_recycle 1
/ipv4/tcp_tw_reuse 1
/ipv4/tcp_window_scaling 1

Comment obtenir et définir les valeurs ci-dessus en utilisant le terminal ?

1voto

Firelord Points 23064

Vous pouvez obtenir les valeurs facilement mais vous ne pouvez pas les définir sans accès Root car les fichiers sont en lecture seule ( rw-r-r ) pour "autres".

Obtenez les valeurs

  1. Utilice D. Réponse de Gibbs pour configurer ADB.

  2. Lancez Terminal/cmd dans le PC et entrez :

    adb shell  
    find /proc/sys/net/ -type f | while read -r file; do echo $file $(cat $file); done
    • find trouvera les fichiers sous l'emplacement /proc/sys/net/ . Modifiez l'emplacement si le besoin s'en fait sentir.
    • while read lira chaque ligne de la sortie précédente dans un fichier,
    • do permettra l'exécution de tâches ( echo "filename" et afficher sa valeur en utilisant cat ),
    • done pour accomplir la tâche.
    • Sources : 1 , 2 .

    Extrait de la sortie :

    /proc/sys/net/core/dev_weight 64
    /proc/sys/net/core/message_burst 10
    /proc/sys/net/core/message_cost 5
    /proc/sys/net/core/netdev_budget 300
    /proc/sys/net/core/netdev_max_backlog 1000
    /proc/sys/net/core/netdev_tstamp_prequeue 1
  3. Vous pouvez sauvegarder la sortie dans un fichier en utilisant > <FILENAME> à la fin de la dernière commande de l'étape 2.

  4. Certains fichiers ne seront pas enregistrés ou affichés en raison des autorisations de fichiers. Dans ce cas, enracinez l'appareil et répétez les étapes susmentionnées en utilisant su après adb shell commandement.

Définir les valeurs

Maintenant que vous avez une table de fichier -> valeur, vous pouvez changer la valeur en utilisant echo à condition que vous ayez un accès Root.

  1. Dans le terminal, entrez :

    adb shell 
    su 
    echo <VALUE> > <FILE_PATH>

    Changement <VALUE> avec la valeur que vous voulez définir et <FILEPATH> avec le chemin du fichier. Par exemple

    echo 46 > proc/sys/net/core/dev_weight 

Vous pouvez également appliquer ces étapes dans une application terminale sur Android. Il suffit d'apporter des modifications mineures en fonction de l'environnement, par exemple > <FILENAME> dans la commande find, et ne pas utiliser adb shell .

0voto

D. Gibbs Points 451

Vous pouvez utiliser ADB (Android Debugging Bridge) pour accéder à ces fichiers sur l'appareil. Il y a deux choses que vous devez faire pour que ADB fonctionne :

  1. Installer ADB : Vous pouvez trouver de nombreux tutoriels d'installation d'ADB pour Windows sur Google ou utiliser le lien fourni.
  2. Vous devez activer le débogage ADB sur votre appareil puis lancez une invite de commande sur Windows pour accéder au shell.

Après avoir ouvert une invite de commande (Windows : Cliquez sur démarrer-> tapez cmd dans la barre de recherche, puis cliquez sur Invite de commande) tapez adb shell pour démarrer le shell Android. Ensuite, il suffit de se rendre dans le répertoire de votre choix. cd /proc/sys/net .

0voto

Irfan Latif Points 16863

sysctl est un outil standard de Linux pour définir/obtenir la configuration du noyau en /proc/sys/ disponible sur Android en tant que toybox applet. Vous pouvez également utiliser l'applet busybox.

~$ /system/bin/sysctl --help
usage: sysctl [-aAeNnqw] [-p [FILE] | KEY[=VALUE]...]

Read/write system control data (under /proc/sys).

-a,A    Show all values
-e      Don't warn about unknown keys
-N      Don't print key values
-n      Don't print key names
-p      Read values from FILE (default /etc/sysctl.conf)
-q      Don't show value after write
-w      Only write values (object to reading)

Utilisez un émulateur de terminal ou adb shell :

~# sysctl net.ipv4.tcp_timestamps=1
~$ sysctl net.ipv4.tcp_timestamps
1

La définition de valeurs n'est autorisée que pour Root.


RELATION :

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X