linux:tweaks

(X)Ubuntu tweaks

Znalezione TU: https://ubuntuforums.org/showthread.php?t=2468575

INTERNAL ERROR: Cannot create temporary directory!

The Problem still exists, the problem is marked as „solved” but I got a better Workaround:

Supply Temp with a (virtual) Floppy Disk. VFAT is always writeable (unless mounted ro)

wine ./some.exe (typically Python ...)
[42] INTERNAL ERROR: cannot create temporary directory!

┌──(user㉿host)-[~/somedir]
└─$ file some.exe
some.exe: PE32+ executable (console) x86-64, for MS Windows

┌──(user㉿host)-[~/somedir]
└─$ ls -laFtr ~/.wine/drive_c/users/user/Temp 255 ⨯
total 0
drwxr-xr-x 1 user user 384 Nov 3 12:36 ../
d--------- 1 user user 0 Nov 3 18:01 _MEI424/
d--------- 1 user user 0 Nov 3 18:01 _MEI423/
d--------- 1 user user 0 Nov 3 18:01 _MEI422/
d--------- 1 user user 0 Nov 3 18:01 _MEI426/
d--------- 1 user user 0 Nov 3 18:01 _MEI425/
drwxr-xr-x 1 user user 70 Nov 3 18:01 ./

┌──(user㉿host)-[~/somedir]
└─$

┌──(user㉿host)-[~]
└─$ dd if=/dev/zero of=dos.img bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 0.0647699 s, 1.6 GB/s

┌──(user㉿host)-[~]
└─$ ll dos.img
-rw-rw-rw- 1 user user 104857600 Nov 3 17:07 dos.img

┌──(user㉿host)-[~]
└─$ mkfs.fat dos.img
mkfs.fat 4.2 (2021-01-31)

┌──(root💀host)-[~]
└─# sudo vi /etc/fstab

:
/home/user/dos.img /home/user/.wine/drive_c/users/user/Temp vfat loop,user 0 1

┌──(user㉿host)-[~/somedir]
└─$ mount /home/user/.wine/drive_c/users/user/Temp

┌──(user㉿host)-[~/somedir]
└─$ df
Filesystem 1K-blocks Used Available Use% Mounted on
:
/dev/loop0 102182 4 102178 1% /home/user/.wine/drive_c/users/user/Temp

┌──(user㉿host)-[~/somedir]
└─$ ll /home/user/.wine/drive_c/users/user/Temp
total 22
drwxrwxrwx 3 user user 16384 Jan 1 1970 ./
drwxr-xr-x 17 user user 4096 Nov 3 12:36 ../
drwxrwxrwx 3 user user 2048 Nov 3 17:11 a/

┌──(user㉿host)-[~/somedir]
└─$ mkdir /home/user/.wine/drive_c/users/user/Temp/abc

┌──(user㉿host)-[~/somedir]
└─$ chmod u-rwx /home/user/.wine/drive_c/users/user/Temp/abc

┌──(user㉿host)-[~/somedir]
└─$ ll /home/user/.wine/drive_c/users/user/Temp/
total 24
drwxrwxrwx 4 user user 16384 Jan 1 1970 ./
drwxr-xr-x 17 user user 4096 Nov 3 12:36 ../
drwxrwxrwx 3 user user 2048 Nov 3 17:11 a/
drwxrwxrwx 2 user user 2048 Nov 3 18:29 abc/

┌──(user㉿host)-[~/somedir]
└─$ wine ./some.exe
:

running !

Znalezione tutaj

Tumblerd using up CPU, and memory on Xfce and thunar

Recently, I've had some trouble with tumblerd using a lot more resources than it should. I did some research and found this script that basically puts a leache on tumbler, while allowing you to keep using it to make thumbnails.

Copy and paste this script into a blank file, mark it executable, and set up Xfce to run it at startup…problem solved!

#!/bin/bash
# Tumblerdwatcher v 1.0
# Script to check and kill tumblerd process if a loop is suspected. To be automatically scheduled at user session start.
# Homemade workaround for bug: http://forums.linuxmint.com/viewtopic.php?f=110&t=97079&p=767460&hilit=tumblerd#p554241
# The author has no responsibility for the execution. Feel free to distribute and modify it.
# Advice are welcome to rs2809@yahoo.it.

period=60                  # check period (sec)
process="/usr/lib/i386-linux-gnu/tumbler-1/tumblerd"   # tumblerd binary path
Pcpu=20                     # tolerated cpu usage (%)
Pmem=25                     # tolerated memory usage (%)
mountpath="/media"               # automatic mount point for removable storage
sec=10                     # time limit (sec) for opened file at $mountpath for thumbnail generation
sg="-15"                  # process termination signal (-15 is OK)
logpath="/tmp/Tumblerdwatcher.log"         # log path                     

cat /dev/null > $logpath
exec >$logpath 2>&1
# reset log file

while true
# execute endlessly

 do

 sleep $period
# wait a set period of time

 [[ `ps -ef | grep $process | grep -v 'grep' | wc -l` -eq 0 ]] && continue
# skip to next period if not executing

 ps -eo pcpu,pid,pmem,args | grep $process | grep -v 'grep' | while read dpcpu pid dpmem
# catch proccess id, cpu usage and memory usage

  do

  pcpu=`echo $dpcpu | cut -d'.' -f1`
  pmem=`echo $dpmem | cut -d'.' -f1`

  [[ $pcpu -gt $Pcpu ]] || [[ $pmem -gt $Pmem ]] && kill $sg $pid && echo "`date` PID $pid $pcpu/$Pcpu %cpu $pmem/$Pmem %mem" && continue
# if cpu usage or memory usage exceed, kill it and report values in the log file

  [[ `lsof -p $pid | grep $mountpath | wc -l` -eq 0 ]] && continue
# if no opened file by tumblerd at removable storage mountpoint, skip to next period

  lsof -p $pid | grep $mountpath | tr -s ' ' | cut -d' ' -f9 > /tmp/tumblerd.lsof.old
# list opened files

  sleep $sec
# wait for tolerated time limit

  [[ `lsof -p $pid | grep $mountpath | wc -l` -eq 0 ]] && continue
# if no more opened file skip to next period

  lsof -p $pid | grep $mountpath | tr -s ' ' | cut -d' ' -f9 > /tmp/tumblerd.lsof.new
# list opened files again

  for opened_file in `cat /tmp/tumblerd.lsof.old`
# if some file was open before....
   do

     grep $opened_file /tmp/tumblerd.lsof.new && kill $sg $pid && echo "`date` PID $pid ^^^^^^^^^^^^^^^^^^^^^^^^" && continue
# ...and it's still hung open, kill tumblerd
   done

  done

done

W związku z powyżej wykazanym notorycznym błędzeniem grive:

Zapomnialem zkopiovac logó

Postanowiłem przerzucić się na program drive, którego opis można znaleźć pod adresem: https://github.com/odeke-em/drive/

Jak już się nauczę, jak nim posługiwać, wtedy poprawię niżej napisane skrypty. Na razie niech leżą, może komuś się przydadzą.

Skrypt

Napisałem do tego celu własny skrypt. Nie jest to nic specjalnego, bo żaden ze mnie programista, po prostu użytkownik Linuxa. Dość łatwo go dostosować do własnych potrzeb.

Powinienem go rozbudować o pytania i opublikować na GitHubie, to dołączę do elyty ;-)

Hmmm… Ten skrypt nie zawsze działa. Zatem na wypadek awarii oraz ewentualnie dla ukrycia śladów warto też odpalać taki skrypt. On wykona synchronizację zawsze, bez sprawdzania i pytania.

Instalacja

Aby korzystać z dobrodziejstw automagicznej synchronizacji wielu kont Google Drive na Xubuntu, należy najsampierw zainstalować sobie opensorsowego klienta GoogleDrive:

instalacja Grive

sudo add-apt-repository ppa:thefanclub/grive-tools
sudo apt-get update
sudo apt-get install grive-tools

To zainstaluje o wiele więcej niż potrzebujemy, ale przynajmniej świadczy aktualizację kodu Grive. Następnie trzeba wejść do katalogu, w którym chcemy, aby się znalazły synchronizowane z serwerem pliki i odpalić:

cd /path/to/my/GoogleDrive/
grive -a

Poczekać, aż się zsynchronizuje.

Następne synchronizacje robi się tak, że:

cd /path/to/my/GoogleDrive/
grive

Następnie trzeba zainstalować niezbędne narzędzia:

instalacja md5deep

sudo apt-get install md5deep
aplikacja skryptu w crontab

Na razie nie znalazłem metody, jak odpalać synchronizację po każdej zmianie, więc po prostu można wrzucić skrypt do crontab, aby wykonywał się np. co 5 minut, kiedy jesteśmy zalogowani:

crontab -e

Odpali nam w domyślnym edytorze tekstowym terminala pliku z /var/spool/cron/crontabs/mojekonto:

# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.uop5Gq/crontab installed on Sat Dec 13 12:06:46 2014)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
# Edit this file to introduce tasks to be run by cron.
# 
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
# 
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').# 
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
# 
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
# 
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
# 
# For more information see the manual pages of crontab(5) and cron(8)
# 
# m h  dom mon dow   command
#
#
#
## odpal google drive sync co 5 min
*/5 * * * * /home/myself/myscripts/grive-sync/grive-sync.sh > /dev/null

To powinno działać.

Niestety, graficy z okolic Ubuntu wymyślili, że granica okna będzie miała najwyżej 1px szerokości - ale zapomnieli, że obszar na którym można by je „chwycić”, powinien być znacznie szerszy, aby łatwo było taką operację wykonać. Ten obszar, niestety, także ma szerokość 1px, co prawie uniemożliwia sukces…

Ale znalazłem prawdopodobną przyczynę i jednocześnie obejście problemu: skrót klawiszowy, wbudowany w Xubuntu:

Have you tried the Alt+Right-click+drag trick? Hold down the Alt key, press and hold the right mouse button, and then move the mouse in the direction of the resize. Tłumaczę: wciśnij i przytrzymaj Alt, wciśnij i przytrzymaj prawy przycisk myszy - i „pociągnij” czyli przesuń myszkę. Okno zmieni rozmian razem z tym ruchem.

Da się? Da się!

apt-get install tasksel && tasksel remove ubuntu-desktop && tasksel install server && apt-get update && apt-get install linux-server linux-image-server && apt-get purge lightdm

Zwykle wtedy jest opcja wstrzymania, nic nierobienia lub zablokowania ekranu. Jednak w Xubuntu coś nie ten-teges jest z zarządzaniem WiFi po obudzeniu laptoka. A że mam dysk SSD, budzenie i restart trwają podobnie długo, więc… ... trzeba zmienić konfigurację systemd-logind (/etc/systemd/logind.conf), żeby po zamknięciu klapy laptok się wyłączał.

Wake-on-LAN

Instalacja Google SketchUp

  • linux/tweaks.txt
  • ostatnio zmienione: 2023/07/20 11:27
  • przez flamenco108