Cyberduck und SFTP

Benutzer „abc“ für Gruppenverzeichnis „def“ anlegen und Kennwort setzen.

sudo groupadd def
sudo useradd abc -d /home/sftp/def -g def -s /bin/false
sudo passwd abc

Gruppenverzeichnis anlegen und passende Rechte setzen. Alle Elemente von ChrootDirectory müssen „root“ gehören und dürfen auch nur von „root“ beschreibbar sein. Im ChrootDirectory liegt das Arbeitsverzeichnis für die Benutzer.

mkdir -p /home/sftp/def
sudo namei -om /home/sftp/def
f: /home/sftp/def
 dr-xr-xr-x root  root  /
 drwxr-xr-x root  root  sftp
 drwxrwxr-x abc   def   def

Datei „/etc/ssh/sshd_config“ editieren und SSHD mit „sudo systemctl restart sshd“ neustarten.

...
Subsystem  sftp  /usr/libexec/openssh/sftp-server
Match Group def
   ChrootDirectory /home/sftp
   X11Forwarding no
   AllowTcpForwarding no
   ForceCommand internal-sftp

CSV nach XLSX mit Python

Das Modul XlsxWriter mit pip install XlsxWriter installieren. Weitere Infos zum Lesen und Schreiben von CSV-Dateien hier.

import os
import glob
import csv
from xlsxwriter.workbook import Workbook
 
 
for csvfile in glob.glob(os.path.join('.', '*.csv')):
          print ("csvfile:", csvfile)
          workbook = Workbook(csvfile + '.xlsx')
          worksheet = workbook.add_worksheet()
          with open(csvfile, 'rt', encoding="ascii") as f:
                    reader = csv.reader(f, \
                    delimiter=';', quotechar='"')
                    for r, row in enumerate(reader):
                              for c, col in enumerate(row):
                                        worksheet.write(
                                        r, c, col)
          workbook.close()

Zuwachs in Dateien

Eine Textdatei wird über mehrere Iterationen stetig größer. Der Zuwachs beim letzten Stand der Datei wird gefunden, wenn die zuvor bekannten Zeilen eliminiert werden. Die Tools „comm“, „sort“ und „sed“ können unter Windows über GNU utilities for Win32 eingesetzt werden.

abc_sort.txt: abc
efg_sort.txt: abcefg
abcdefg_sort.txt: abcdefg

comm -3 abc_sort.txt abcdefg_sort.txt | sed s/^\t// | sort > defg.txt
comm -13 efg_sort.txt defg.txt | sed s/^\t// = x > d.txt